Lex Landa wrote:
I'll have a look at this today, and see if I can make a boot bundle.
Some good news: I've been able to make a boot bundle from a
Narcissus-generated image - I used the 'minimal' image with all kernel
modules, dropbear and wireless-tools.
I made the following changes (I've used '---' marks to show the
beginning & end of inserted text):
1. Copy zImage from Narcissus rootfs /boot, to temporary dir for making
the boot bundle (cp boot/zImage-2.6.21-hh20 ../)
2. Set boot commandline in HaRET startup script (startup.txt.bootimage):
---
# initramfs-bootmenu HaRET script
# (c) 2007 Paul Sokolovsky
msgbox "Attention!" "This will boot Linux. All memory will be
overwritten and hard reset will be required to return to Windows Mobile.
You *MUST BACKUP* your data first. Continue booting (Cancel - quit to
make backup)?" 0x40031
if result == 2 exit
set cmdline "root=/dev/ram0 rootdelay=3
ip=192.168.2.202:192.168.2.200:192.168.2.200:255.255.255.0:ipaq:usb0
console=tty0 console=ttyS0,115200n8 rdinit=/sbin/init"
ramboot
---
3. Edit initramfs /etc/fstab (removed the /home mountpoint to prevent
'empty flash' messages when /dev/mtdblock3 was mounted).
My initramfs /etc/fstab:
---
rootfs / auto defaults 1 1
proc /proc proc defaults 0 0
sys /sys sysfs defaults 0 0
/dev/hda1 /media/cf auto
defaults,noauto,noatime,exec,suid 0 0
tmpfs /var/volatile tmpfs mode=0755 0 0
tmpfs /dev/shm tmpfs mode=0777
0 0
tmpfs /media/ram tmpfs defaults 0 0
---
4. Edit initramfs /linuxrc - is it even required? No- I deleted it and
am using the standard /sbin/init. The initramfs is the final system and
we're not going to mount any 'main file system', so the minimal
Busybox init is not required (says I...).
5. Copy over wlan firmware (/lib/firmware doesn't exist;
/usr/lib/firmware doesn't either) to initramfs.
I copied the ACX firmware from my Ubuntu system, which might not be the
approved way of doing things - I have no way of knowing whether the
firmware would work with the hx4700 - a risky move, but it is working.
'Why didn't I use the SDG Systems WLAN firmware?' <shrug>
I copied the firmware over before making the initramfs.
---
r...@hx4700:/lib/firmware# ls -l
lrwxrwxrwx 1 root root 23 Nov 1 05:25 RADIO0d.BIN ->
acx/1.9.8.b/tiacx100r0D
lrwxrwxrwx 1 root root 23 Nov 1 05:25 RADIO11.BIN ->
acx/1.9.8.b/tiacx100r11
lrwxrwxrwx 1 root root 23 Nov 1 05:26 RADIO15.BIN ->
acx/1.9.8.b/tiacx100r15
lrwxrwxrwx 1 root root 20 Nov 1 05:25 WLANGEN.BIN ->
acx/1.9.8.b/tiacx100
drwxr-xr-x 6 root root 0 Nov 2 1999 acx
---
The /lib/firmware/acx dir contains a number of revisions of ACX
firmware: 1.0.9, 1.9.8b, 2.3.1.31, and a 'default' dir with symlinks.
The hx4700 wants everything in /lib/firmware, so I made symlinks, as
shown above.
The acx startup (modprobe hx4700_acx ; modprobe acx debug=0) looks like
this:
---
[ 969.660000] acx: this driver is still EXPERIMENTAL
[ 969.660000] acx: reading README file and/or Craig's HOWTO is
recommended, visit http://acx100.sf.net in case of further
questions/discussion
[ 969.730000] acx: compiled to use 32bit I/O access. I/O timing issues
might occur, such as non-working firmware upload. Report them
[ 969.790000] egpio set: reg 0 = 0x00d7
[ 969.910000] egpio set: reg 0 = 0x00d7
[ 970.080000] egpio set: reg 0 = 0x00d7
[ 970.090000] egpio set: reg 0 = 0x00d7
[ 970.110000] egpio set: reg 0 = 0x00d7
[ 970.190000] acx: found ACX100-based wireless network card
[ 970.220000] ACX radio type 0x0d
[ 971.230000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 971.320000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 971.670000] NVS_vendor_offs:0000 probe_delay:500 eof_memory:65536
[ 971.700000] CCAModes:04 Diversity:01 ShortPreOpt:01 PBCC:01
ChanAgil:00 PHY:05 Temp:01
[ 971.730000] AntennaID:01 Len:02 Data:1E 00
[ 971.750000] PowerLevelID:0A Len:00 Data:
[ 971.770000] DataRatesID:02 Len:05 Data:02 04 11 22 44
[ 971.790000] DomainID:03 Len:07 Data:10 20 30 31 32 40 41
[ 971.820000] ProductID:04 Len:09 Data:TI ACX100
[ 971.840000] ManufacturerID:05 Len:07 Data:TI Tesl
[ 971.870000] acx: === chipset TNETW1100B, radio type 0x0D (Maxim),
form factor 0x03 (Compact Flash), EEPROM version 0x05: uploaded firmware
'Rev 1.9.8.b' ===
[ 971.940000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 971.990000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 972.040000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 972.090000] acx copy_from_slavemem: warning! destination not
word-aligned!
[ 972.250000] acx v0.3.36: net device wlan0, driver compiled against
wireless extensions 22 and Linux 2.6.21-hh20
---
I used a few scripts to make building the initramfs easier:
'make-bootbundle.py', you have already.
'make-initrd.sh' to make the initramfs ('initrd' should be 'initramfs',
maybe).
---
#!/bin/sh
# Execute this from the initrd root dir.
find . | sudo cpio -o -H newc | gzip -9 > ../initramfs.cpio.gz
---
'bootbundle.sh' calls make-bootbundle.py and names the bootbundle,
depending on the current date & time:
---
#!/bin/sh
# Run this to build the boot bundle
# L. 01-Nov-09
dt="`date +%d%m%y-%H%M%S`"
./make-bootbundle.py -o bootbundle-${dt}.exe haret-0.5.2.exe
zImage-2.6.21-hh20 initramfs.cpio.gz startup.txt.bootimage
---
Final notes: I may need to make more changes as there's sure to be
something that I've missed. As it is, this works, with a bit of
kludging around.
Lex
_______________________________________________
Angstrom-distro-users mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-users