OpenWrt Forum Archive

Topic: Build for Westell 7500 - setup environment

The content of this topic has been archived on 1 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi all,

I am trying to work with a build for Westell 7500, which I have found through research is very close to 96358VW2 except the GPIO mappings are off; definition for green power LED is mapped to GPIO5 which on the Westell, GPIO 5is really to enable/disable the switch.  I plan to research and fix the GPIO mappings so that all the LEDs work properly, and the switch is enabled with a reset flash as currently I have to add an echo line to send a brightness control to what the firmware thinks is the power LED.

But first I need a functioning build environment.  The installation instructions seem to have a bit of a conflict when it comes to downloading the main and package repositories for Attitute Adjustment.

My initial environment:
Fedora 18 x32 on VBox
Using the bcm63xx target
My top directory for all this is ~/openwrt/12.09 - where I will be using Attitude Adjustment: 12.09.
I also have a top folder ~openwrt/trunk to test out the trunk, particularly for comparisons.
Installed all recommended packages in Fedora, found I also needed gcc-java, which then installs ecj.  By the way, the check for Java in the make generates deprication warnings.

Here's the conflict:
According to Buildroot-installation, it is recommended to use GIT for checking out soure code.
git clone git://git.openwrt.org/12.09/openwrt.git generates subfolder openwrt
git clone git://git.openwrt.org/12.09/packages.git generates subfolder packages, which doesn't seem to have any connection with sibling folder openwrt.
svn info command won't work in this situation, doesn't seem to see any download, though I have seen svn used in the make process.

The svn method "svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment" generates subfolder attitude-adjustment.  I read in the install that git is needed for some of the packages so I thought I needed to use the git method of obtaining the source code, but I think I see now, it meant I needed the Fedora git package, not necessarily the git method of setting up the sources.

I downloaded the config template config.brcm63xx_generic which I was suprised to find "Select all packages by default" in the Global Build Settings.  I would think that most of the resulting packages aren't needed or recommended by any of the defined boards.  I'd like to have a config that has a reasonable selection of packages for this target, particularly for what generated openwrt-96358VW2-generic-squashfs-cfe.bin that one can download.

But using the config template as-is, several of the packages generated errors during compile.  So far I came across:
appweb
dhcpd
etherpuppet
libzstream (needed for freecwmp)
libowfat (needed for gatling)
shflags (download failure I think)
gesftpserver
Netatalk

I am still eliminating the problem packages until i get a successfull build.

Somewhere down the line I started getting the following error when I made changes in menuconfig:
tmp/.config-package.in:17709:warning: 'select' used by config symbol 'PACKAGE_deluge-ui-gtk' refer to undefined symbol 'PACKAGE_python-gtk'
tmp/.config-package.in:22275:warning: 'select' used by config symbol 'PACKAGE_bmx6-quagga' refer to undefined symbol 'PACKAGE_qmp-quagga'
tmp/.config-package.in:46773:warning: 'select' used by config symbol 'PACKAGE_lcd4linux-custom' refer to undefined symbol 'PACKAGE_libdpf'
tmp/.config-package.in:46805:warning: 'select' used by config symbol 'PACKAGE_lcd4linux-full' refer to undefined symbol 'PACKAGE_libdpf'

I focused on deluge-ui-gtk to try and troubleshoot the problem.  Indeed there doesn't seem to be a package python-gtk so i understand the error.  But I can't find deluge anywhere in menuconfig.  I looked at the package make, whcih suggests it is supposed to be under Network\Bitorrent in menuconfig but it is not there, neither is deluge, which depends on deluge-ui-gtk.  I suspect the other 3 have the same issue.  How do I get rid of these errors, and if these packages are in development, how did they get into Attitude Adjustment?  I would have only expected this under trunk.

If I can obtain a better config template that more closely follows what's in the prebuilt .bin's one can download, that would certainly get around much of the above problems, let alone save me a heck of a lot of time generating builds.

Thanks all.

I managed to get a little further.
I redid my build directories for 12.09 and trunk, using svn rather than git to populate them.
I also noticed in the readme I found in attitude_adjustment/12.09 under the download site that I should check out the source from svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09/
I also noticed in the directions for an install of the buildroot that running ./scripts/feeds upate -a and ./scripts/feeds/ install -a were optional, so I didn't do those.
That created a successful build.  However, my openwrt-96358VW2-generic-squashfs-cfe.bin is only 2.6MB whereas the one in Downloads is 2.8MB so something is missing though probably not critical.  I can't test this image right now as I gave the Westell I had been working on to my church but I have one on order, should arrive by next week.

I also redid the trunk buildroot, also not downloading any feed packages.  Setting only some basic items in menuconfig, no packages selected, the build errored out compiling ead: missing asm/linkage.h.
I noticed that the package compile logs are in different areas for trunk versus 12.09.  In the former, I found the compile log for ead under trunk/logs/package/networks/services/ead, in the latter <12.09>/logs/package/ead.  IOW the release 12.09 doesn't subcategorize packages but trunk does.  Also menuconfig is much different between the two.
Since not applying feeds seemed to be a factor, I am going to try using the same .config for trunk that i used for the 12.09 that worked.

I did change the target profile from Broadcom WiFi to Broadcom BCM43xx since there is a 4318 radio in the Westell, that may explain the differences in image sizes.

Also noticed that trunk moved reset to defaults, load alternate and save alternate over to the select/exit/help at the bottom.

Tried using the config that was successful with the pristine 12.09.  It compiled a lot more but still failed at ead:
/home/danman32/openwrt/trunk/trunk/build_dir/target-mips_uClibc-0.9.33.2/linux-brcm63xx_generic/linux-3.9.8/include/linux/linkage.h:5:25: fatal error: asm/linkage.h: No such file or directory

Intially had a problem getting mac80211 to compile, but after running 'make dirclean', it compiled.

ead make file indicates dependence on libpcap, which before with the limited build was not selected, but now it is.  I'd say maybe it needs to be a built-in module, but it didn't need to be in the 12.09 build.
This problem cropped up last May, apparently the kernel was bumped up while someone was building, causing mismatch between his builds.
Ran svn update, sure enough svn info shows a change this evening.

ead still won't compile.  Temporarily deselected it, the rest builds OK.

Now to wait for my router to arrive so I can test these builds, then get to the matter at hand.
Wow!  The firmware size went from 2.6 in 12.09 to 3.1 in trunk!

(Last edited by danman32 on 12 Jul 2013, 06:31)

Poking around the stock firmware through telnet (after adding /sbin/telnetd to custom firewall script), I was able to gather the GPIO mappings for the LEDs and buttons:
HW(GPIO pin)      DIR   Desc
13                       0      PowerGrn
10                       0      PowerRed
3                         0      DSLGrn
24                       0      DSLRed
2                         0      IntGrn
22                       0      IntRed
23                       0      UsbGrn
8                         1      Btn:Reset(Easy)
1                         0      WireGrn
26                       0      EasyGrn
37                       1      Btn:Easy(Reset)
5                         0      SwitchEnable

Wire=Wireless LED
Easy=Easy Wireless config LED under the Easy Config button
Int=WAN LED
DSL=DSL LED (not present in 7501)
Switch enable is tied to GPIO5 and needs to be set; default setting leaves it disabled.
I do know which GPIO's are used for the two buttons, but not sure which order.
With that, we can add a customization for a Westell 750x board that properly supports the LEDs and buttons.

I ran into a snag installing the CFE.  Apparently the CFE6358.bin doesn't support the flash ID on the 7501 "flash device ID 257e is not supported", but does support the ID for the 7500 apparently as a few of us have done it.  I have a 7501 though for my lab work.  If I can get the NVRAM sections of the CFE off of a working 96358VW2 based router, then I probably can inject that into the flash, so then perhaps the CFE won't complain about the flash ID.  I am not seeing any plain text in the bin under a hex editor, so I suspect the CFE is encrypted.
I've been manually trying to calculate the values, but I must have them all wrong.

danman32 wrote:

Hi all,

I am trying to work with a build for Westell 7500, which I have found through research is very close to 96358VW2 except the GPIO mappings are off; definition for green power LED is mapped to GPIO5 which on the Westell, GPIO 5is really to enable/disable the switch.  I plan to research and fix the GPIO mappings so that all the LEDs work properly, and the switch is enabled with a reset flash as currently I have to add an echo line to send a brightness control to what the firmware thinks is the power LED.

But first I need a functioning build environment.  The installation instructions seem to have a bit of a conflict when it comes to downloading the main and package repositories for Attitute Adjustment.

My initial environment:
Fedora 18 x32 on VBox
Using the bcm63xx target
My top directory for all this is ~/openwrt/12.09 - where I will be using Attitude Adjustment: 12.09.
I also have a top folder ~openwrt/trunk to test out the trunk, particularly for comparisons.
Installed all recommended packages in Fedora, found I also needed gcc-java, which then installs ecj.  By the way, the check for Java in the make generates deprication warnings.

Here's the conflict:
According to Buildroot-installation, it is recommended to use GIT for checking out soure code.
git clone git://git.openwrt.org/12.09/openwrt.git generates subfolder openwrt
git clone git://git.openwrt.org/12.09/packages.git generates subfolder packages, which doesn't seem to have any connection with sibling folder openwrt.
svn info command won't work in this situation, doesn't seem to see any download, though I have seen svn used in the make process.

The svn method "svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment" generates subfolder attitude-adjustment.  I read in the install that git is needed for some of the packages so I thought I needed to use the git method of obtaining the source code, but I think I see now, it meant I needed the Fedora git package, not necessarily the git method of setting up the sources.

I downloaded the config template config.brcm63xx_generic which I was suprised to find "Select all packages by default" in the Global Build Settings.  I would think that most of the resulting packages aren't needed or recommended by any of the defined boards.  I'd like to have a config that has a reasonable selection of packages for this target, particularly for what generated openwrt-96358VW2-generic-squashfs-cfe.bin that one can download.

But using the config template as-is, several of the packages generated errors during compile.  So far I came across:
appweb
dhcpd
etherpuppet
libzstream (needed for freecwmp)
libowfat (needed for gatling)
shflags (download failure I think)
gesftpserver
Netatalk

I am still eliminating the problem packages until i get a successfull build.

Somewhere down the line I started getting the following error when I made changes in menuconfig:
tmp/.config-package.in:17709:warning: 'select' used by config symbol 'PACKAGE_deluge-ui-gtk' refer to undefined symbol 'PACKAGE_python-gtk'
tmp/.config-package.in:22275:warning: 'select' used by config symbol 'PACKAGE_bmx6-quagga' refer to undefined symbol 'PACKAGE_qmp-quagga'
tmp/.config-package.in:46773:warning: 'select' used by config symbol 'PACKAGE_lcd4linux-custom' refer to undefined symbol 'PACKAGE_libdpf'
tmp/.config-package.in:46805:warning: 'select' used by config symbol 'PACKAGE_lcd4linux-full' refer to undefined symbol 'PACKAGE_libdpf'

I focused on deluge-ui-gtk to try and troubleshoot the problem.  Indeed there doesn't seem to be a package python-gtk so i understand the error.  But I can't find deluge anywhere in menuconfig.  I looked at the package make, whcih suggests it is supposed to be under Network\Bitorrent in menuconfig but it is not there, neither is deluge, which depends on deluge-ui-gtk.  I suspect the other 3 have the same issue.  How do I get rid of these errors, and if these packages are in development, how did they get into Attitude Adjustment?  I would have only expected this under trunk.

If I can obtain a better config template that more closely follows what's in the prebuilt .bin's one can download, that would certainly get around much of the above problems, let alone save me a heck of a lot of time generating builds.

Thanks all.

Do you have a build of the tools you used to flash the modem, or the modified openwrt app.upg you used? I tried to build the flash tools used 32 and 64 bit image, but was unsuccessful in getting them to run in the westell 7500 unit.

The discussion might have continued from here.