I have no issues doing this, it would be the least I could do for OpenWRT community.
I mean if a config could be built with all packages then its just a matter of time per release.
Any idea where this could be put? I know there is an official place for factory and sysupgrade images but I have no idea how to get a release inside there.
It we get the switch stuff working then ill put another Dropbox link here.
I'm not very familiar with that, the problem is this is an unofficial hw and not sure whether OpenWRT will accept our packages and releases.
You can proceed with dumping of your NAND partitions.
All partitions are listed here: cat /proc/mtd. Just dump the first 4 partitions, the others contain just OpenWRT images.
Just trying to figure out how to get the dump out of the router.
I have a USB Flash drive in it, but I cant recall how to mount stuff
Edit: I cant post any more reply messages. Forum has limited me.
I am going to try the UBoot stuff and if it fails/works I wont be able to post a reply until after 14 hours according the the rules.
arch arm
autoload n
baudrate 115200
board alpine_hw29765235p0p512p1024p4x4p4x4_32_db
board_name alpine_hw29765235p0p512p1024p4x4p4x4_32_db
bootargs console=ttyS0,115200 pci=pcie_bus_perf earlycon
bootargshd run rootargshd; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnand run rootargsnand; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnfs run rootargsnfs; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootcmd nmrp;run check_dni_image;run bootargsnand;qca8337_init_one; ledtoggle;sleep 1;run bootnand
bootdelay 2
bootext4 lcd_print "Loading OS...";scsi init; ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootnand lcd_print "Loading OS...";nand set_partition_offset $nand_pt_addr_kernel;nand read $loadaddr $nand_pt_addr_kernel 4;setenvmem filesize $loadaddr;incenv filesize 4;nand read $loadaddr $nand_pt_addr_kernel $filesize;ledtoggle;nand set_partition_offset $nand_pt_addr_al_boot;bootm $loadaddr_payload - $fdtaddr;lcd_print Failed!
bootnandmulti run kernel_select;if test $kernel_selected -ne 0; then run bootnand; fi
boottftp lcd_print "Loading OS...";tftpboot $loadaddr ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;tftpboot $loadaddr ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootupd is_nand_boot; if test $? -eq 0; then run bootupdspi; else; run bootupdnand; fi
bootupdnand lcd_print "Updating al-boot" "to NAND"; tftpboot $loadaddr ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; lcd_print "Done"
bootupdnandy lcd_print "Updating al-boot" "to NAND"; echo >> Use YModem to upload the boot image binary...;loady $loadaddr;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; lcd_print "Done"
bootupdspi lcd_print "Updating al-boot" "to SPI"; tftpboot ${loadaddr} ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdspiy lcd_print "Updating al-boot" "to SPI"; echo >> Use YModem to upload the boot image binary...;loady ${loadaddr};if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdy is_nand_boot; if test $? -eq 0; then run bootupdspiy;else; run bootupdnandy; fi
check_dni_image lcd_print "Loading DNI firmware for checking...";nand set_partition_offset $nand_pt_addr_kernel;ledtoggle;loadn_dniimg 0 $nand_pt_addr_kernel $loadaddr;ledtoggle;calc_rootaddr $nand_pt_addr_kernel $loadaddr;nand set_partition_offset $nand_pt_addr_al_boot;setenv kernel_addr_for_fw_checking $loadaddr;incenv kernel_addr_for_fw_checking 4;iminfo $kernel_addr_for_fw_checking;if test $? -ne 0; then echo "linux checksum error";fw_recovery; fi;ledtoggle;iminfo $rootfs_addr_for_fw_checking;if test $? -ne 0; then echo "rootfs checksum error";fw_recovery; fi;ledtoggle;lcd_print Failed!
cpu armv7
cvos_tags 0x01000000
cvos_tags_seed_a 0x01000004
cvos_tags_seed_b 0x01000008
cvos_tags_validate mw.l ${cvos_tags} 0xcf05cf05
delenv is_nand_boot; if test $? -eq 0; then run delenvspi; else; run delenvnand; fi
delenvnand lcd_print "Deleting env..."; nand erase ${env_offset} 2000; if test -n ${env_offset_redund}; then nand erase ${env_offset_redund} 2000; fi;lcd_print "Done"
delenvspi lcd_print "Deleting env..."; sf probe; sf erase ${env_offset} +2000;if test -n ${env_offset_redund}; then sf erase ${env_offset_redund} +2000;fi;lcd_print "Done"
dtupd is_nand_boot; if test $? -eq 0; then run dtupdspi; else; run dtupdnand; fi
dtupdnand lcd_print "Updating DT" "to NAND"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdnandy lcd_print "Updating DT" "to NAND"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdspi lcd_print "Updating DT" "to SPI"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize};echo dtupd done;lcd_print "Done"
dtupdspiy lcd_print "Updating DT" "to SPI"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize}; echo dtupd done;lcd_print "Done"
dtupdy is_nand_boot; if test $? -eq 0; then run dtupdspiy; else; run dtupdnandy; fi
eepromupd confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;tftpboot ${tftpdir}eeprom.bin;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $fileaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupd done
eepromupdy confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;echo >> Use YModem to upload the EEPROM binary...;loady $loadaddr;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $loadaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupdy done
eth1addr CC:40:D0:33:A1:36
eth3addr 8A:D0:A1:12:26:A5
ethact al_eth1
ethaddr CC:40:D0:33:A1:37
ethprime al_eth1
ext4dev 0
ext4dir boot/
ext4part 1
fail echo Failed!; lcd_print "Failed!"
hdroot /dev/sda1
iocc_force 1
iocc_force_val 1
ipaddr 192.168.1.1
kernel_rename_1 editenv nand_pt_desc_kernel_1;saveenv
kernel_rename_2 editenv nand_pt_desc_kernel_2;saveenv
kernel_select_1 setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_1};setenv kernel_selected 1
kernel_select_2 setenv nand_pt_desc_kernel ${nand_pt_desc_kernel_2};setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_2};setenv nand_pt_desc_kernel_2 ${nand_pt_desc_kernel_1};setenv nand_pt_addr_kernel_2 ${nand_pt_addr_kernel_1};setenv nand_pt_desc_kernel_1 ${nand_pt_desc_kernel};setenv nand_pt_addr_kernel_1 ${nand_pt_addr_kernel};saveenv;setenv kernel_selected 2
kernel_select setenv kernel_selected 0;setenv bootmenu_0 ${nand_pt_desc_kernel_1}=run kernel_select_1;setenv bootmenu_1 ${nand_pt_desc_kernel_2}=run kernel_select_2;bootmenu
kernelupd lcd_print "Updating kernel...";tftpboot $loadaddr_payload ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_kernel;mw.l $loadaddr $filesize;incenv filesize 4;nand erase.spread $nand_pt_addr_kernel $filesize;nand write $loadaddr $nand_pt_addr_kernel $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo kernelupd done;lcd_print "Done"
loadaddr 0x08000000
loadaddr_dt 0x07000000
loadaddr_payload 0x08000004
loadaddr_rootfs_chk 0x07000000
nand_pt_addr_al_boot 0x0
nand_pt_addr_fs 0x01000000
nand_pt_addr_kernel 0x00580000
nand_pt_addr_kernel_1 0x00400000
nand_pt_addr_kernel_2 0x00a00000
nand_pt_desc_kernel_1 Test kernel A
nand_pt_desc_kernel_2 Test kernel B
nand_pt_size_fs 0x1f000000
nand_pt_size_kernel 0x00c00000
netmask 255.255.255.0
nfsrootdir /srv/root/
preboot
rootargshd setenv rootargs root=${hdroot} rw
rootargsnand setenv rootargs root=ubi0:root rootfstype=ubifs ubi.mtd=3
rootargsnfs setenv rootargs root=/dev/nfs rw nfsroot=${serverip}:${nfsrootdir},tcp,nolock rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${board_name}:eth1:none
rootfsupd lcd_print "Updating rootfs...";tftpboot $loadaddr_rootfs_chk ${tftpdir}rootfs.ubi.md5;if test $? -ne 0; then run fail; exit; fi;tftpboot $loadaddr ${tftpdir}rootfs.ubi;if test $? -ne 0; then run fail; exit; fi;md5sum -v $loadaddr $filesize *$loadaddr_rootfs_chk;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_fs;nand erase.spread $nand_pt_addr_fs $nand_pt_size_fs;nand write $loadaddr $nand_pt_addr_fs $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo rootfsupd done;lcd_print "Done"
serverip 192.168.1.10
skip_eth_halt 0
soc alpine_hw29765235p0p512p1024p4x4p4x4
vendor annapurna-labs
Put this into a file, copy the file to the device and then run this: fw_setenv --script <path to the file>
Then do NOT reboot yet.
Verify that the env can be read with fw_printenv.
This is crazy, i'm not able to build IPK file for a single package.
And found many forum posts complaining about this but no solution
Apparently, wiki is obsolete in this regard.
Still not able to build nand-utils separately at all.
This doesn't work
I think i got it now. compile also installs the IPK of a package into bin.
Ah nice! Ok, I can reply again. This was 30 minutes wasted on trying to figure out a way to get around the limitation of my trust level.
Got it and done.
Next issue please.
Seems to work.
Output:
root@OpenWrt:/tmp/test# fw_printenv
baudrate=115200
arch=arm
autoload=n
board=alpine_hw29765235p0p512p1024p4x4p4x4_32_db
board_name=alpine_hw29765235p0p512p1024p4x4p4x4_32_db
bootargs=console=ttyS0,115200 pci=pcie_bus_perf earlycon
bootargshd=run rootargshd; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnand=run rootargsnand; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnfs=run rootargsnfs; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootcmd=nmrp;run check_dni_image;run bootargsnand;qca8337_init_one; ledtoggle;sleep 1;run bootnand
bootdelay=2
bootext4=lcd_print "Loading OS...";scsi init; ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootnand=lcd_print "Loading OS...";nand set_partition_offset $nand_pt_addr_kernel;nand read $loadaddr $nand_pt_addr_kernel 4;setenvmem filesize $loadaddr;incenv filesize 4;nand read $loadaddr $nand_pt_addr_kernel $filesize;ledtoggle;nand set_partition_offset $nand_pt_addr_al_boot;bootm $loadaddr_payload - $fdtaddr;lcd_print Failed!
bootnandmulti=run kernel_select;if test $kernel_selected -ne 0; then run bootnand; fi
boottftp=lcd_print "Loading OS...";tftpboot $loadaddr ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;tftpboot $loadaddr ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootupd=is_nand_boot; if test $? -eq 0; then run bootupdspi; else; run bootupdnand; fi
bootupdnand=lcd_print "Updating al-boot" "to NAND"; tftpboot $loadaddr ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; lcd_print "Done"
bootupdnandy=lcd_print "Updating al-boot" "to NAND"; echo >> Use YModem to upload the boot image binary...;loady $loadaddr;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; lcd_print "Done"
bootupdspi=lcd_print "Updating al-boot" "to SPI"; tftpboot ${loadaddr} ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdspiy=lcd_print "Updating al-boot" "to SPI"; echo >> Use YModem to upload the boot image binary...;loady ${loadaddr};if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdy=is_nand_boot; if test $? -eq 0; then run bootupdspiy;else; run bootupdnandy; fi
check_dni_image=lcd_print "Loading DNI firmware for checking...";nand set_partition_offset $nand_pt_addr_kernel;ledtoggle;loadn_dniimg 0 $nand_pt_addr_kernel $loadaddr;ledtoggle;calc_rootaddr $nand_pt_addr_kernel $loadaddr;nand set_partition_offset $nand_pt_addr_al_boot;setenv kernel_addr_for_fw_checking $loadaddr;incenv kernel_addr_for_fw_checking 4;iminfo $kernel_addr_for_fw_checking;if test $? -ne 0; then echo "linux checksum error";fw_recovery; fi;ledtoggle;iminfo $rootfs_addr_for_fw_checking;if test $? -ne 0; then echo "rootfs checksum error";fw_recovery; fi;ledtoggle;lcd_print Failed!
cpu=armv7
cvos_tags=0x01000000
cvos_tags_seed_a=0x01000004
cvos_tags_seed_b=0x01000008
cvos_tags_validate=mw.l ${cvos_tags} 0xcf05cf05
delenv=is_nand_boot; if test $? -eq 0; then run delenvspi; else; run delenvnand; fi
delenvnand=lcd_print "Deleting env..."; nand erase ${env_offset} 2000; if test -n ${env_offset_redund}; then nand erase ${env_offset_redund} 2000; fi;lcd_print "Done"
delenvspi=lcd_print "Deleting env..."; sf probe; sf erase ${env_offset} +2000;if test -n ${env_offset_redund}; then sf erase ${env_offset_redund} +2000;fi;lcd_print "Done"
dtupd=is_nand_boot; if test $? -eq 0; then run dtupdspi; else; run dtupdnand; fi
dtupdnand=lcd_print "Updating DT" "to NAND"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdnandy=lcd_print "Updating DT" "to NAND"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdspi=lcd_print "Updating DT" "to SPI"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize};echo dtupd done;lcd_print "Done"
dtupdspiy=lcd_print "Updating DT" "to SPI"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize}; echo dtupd done;lcd_print "Done"
dtupdy=is_nand_boot; if test $? -eq 0; then run dtupdspiy; else; run dtupdnandy; fi
eepromupd=confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;tftpboot ${tftpdir}eeprom.bin;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $fileaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupd done
eepromupdy=confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;echo >> Use YModem to upload the EEPROM binary...;loady $loadaddr;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $loadaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupdy done
eth1addr=CC:40:D0:33:A1:36
eth3addr=8A:D0:A1:12:26:A5
ethact=al_eth1
ethaddr=CC:40:D0:33:A1:37
ethprime=al_eth1
ext4dev=0
ext4dir=boot/
ext4part=1
fail=echo Failed!; lcd_print "Failed!"
hdroot=/dev/sda1
iocc_force=1
iocc_force_val=1
ipaddr=192.168.1.1
kernel_rename_1=editenv nand_pt_desc_kernel_1;saveenv
kernel_rename_2=editenv nand_pt_desc_kernel_2;saveenv
kernel_select_1=setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_1};setenv kernel_selected 1
kernel_select_2=setenv nand_pt_desc_kernel ${nand_pt_desc_kernel_2};setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_2};setenv nand_pt_desc_kernel_2 ${nand_pt_desc_kernel_1};setenv nand_pt_addr_kernel_2 ${nand_pt_addr_kernel_1};setenv nand_pt_desc_kernel_1 ${nand_pt_desc_kernel};setenv nand_pt_addr_kernel_1 ${nand_pt_addr_kernel};saveenv;setenv kernel_selected 2
kernel_select=setenv kernel_selected 0;setenv bootmenu_0 ${nand_pt_desc_kernel_1}=run kernel_select_1;setenv bootmenu_1 ${nand_pt_desc_kernel_2}=run kernel_select_2;bootmenu
kernelupd=lcd_print "Updating kernel...";tftpboot $loadaddr_payload ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_kernel;mw.l $loadaddr $filesize;incenv filesize 4;nand erase.spread $nand_pt_addr_kernel $filesize;nand write $loadaddr $nand_pt_addr_kernel $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo kernelupd done;lcd_print "Done"
loadaddr=0x08000000
loadaddr_dt=0x07000000
loadaddr_payload=0x08000004
loadaddr_rootfs_chk=0x07000000
nand_pt_addr_al_boot=0x0
nand_pt_addr_fs=0x01000000
nand_pt_addr_kernel=0x00580000
nand_pt_addr_kernel_1=0x00400000
nand_pt_addr_kernel_2=0x00a00000
nand_pt_desc_kernel_1=Test kernel A
nand_pt_desc_kernel_2=Test kernel B
nand_pt_size_fs=0x1f000000
nand_pt_size_kernel=0x00c00000
netmask=255.255.255.0
nfsrootdir=/srv/root/
rootargshd=setenv rootargs root=${hdroot} rw
rootargsnand=setenv rootargs root=ubi0:root rootfstype=ubifs ubi.mtd=3
rootargsnfs=setenv rootargs root=/dev/nfs rw nfsroot=${serverip}:${nfsrootdir},tcp,nolock rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${board_name}:eth1:none
rootfsupd=lcd_print "Updating rootfs...";tftpboot $loadaddr_rootfs_chk ${tftpdir}rootfs.ubi.md5;if test $? -ne 0; then run fail; exit; fi;tftpboot $loadaddr ${tftpdir}rootfs.ubi;if test $? -ne 0; then run fail; exit; fi;md5sum -v $loadaddr $filesize *$loadaddr_rootfs_chk;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_fs;nand erase.spread $nand_pt_addr_fs $nand_pt_size_fs;nand write $loadaddr $nand_pt_addr_fs $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo rootfsupd done;lcd_print "Done"
serverip=192.168.1.10
skip_eth_halt=0
soc=alpine_hw29765235p0p512p1024p4x4p4x4
vendor=annapurna-labs
How to build nand-utils.
First select it in the menuconfig.
Then do this:
make V=s -j$(($(nproc)+1)) package/utils/mtd-utils/clean
make V=s -j$(($(nproc)+1)) package/utils/mtd-utils/compile
ls -l bin/targets/alpine/generic/packages/nand-utils*.ipk
Ah yes, nmrp could perhaps be causing this.
But I am not too convinced for one reason.
When the router boots I can see first one DHCP leak for a short period of time, I assume this to be nmrp. It only lasts for about 1 second or so then the ethernet cable disconnects and DHCP lease resets.
Then it takes much longer for the next leak to come and this time it is permanent until the lease expires.
hmm, this is a good hint. my guess is then that it takes very long between switch activation by openwrt driver and switch setup from /etc/config/network. maybe i could setup switch in such a way that is disabled until the config is applied, somehow.
i‘ll test it on my device and if i have something worked out, will report here.