I flashed v19.07 and uboot to an o2 box which I still had laying around.
I followed this very useful post by @Limer
Since I'm new to OpenWrt I have a bunch of questions.
Maybe someone here can kindly clarify a few things for me.
- Create a 16MiB firmware image for a full flash just for your router (*).
- Copy u-boot:
dd of=./cImage.bin if=./u-boot.bin
- Integrate your oWRT nor image (at position
0x80000
):
dd bs=1024 seek=512 of=./cImage.bin if=./***NOR-squashfs-sysupgrade.bin
- Finish the image with the board_config (at
0xfe0000
) and verify it's size (exactly 16 MiB = 16777216 Byte):
dd bs=1024 seek=16256 of=./cImage.bin if=./board_config.dump
- Optional step - Add a 128KiB (131.072 byte) non-empty uboot environment with correct CRC between uboot and OpenWrt to make it usable for the uboot -envtools with:
dd bs=1024 seek=384 conv=notrunc if=/<path>/uBoot-Env.bin of=cImage.bin
- Flash
cImage.bin
on your router via brnboot's hidden recover web interface (http://192.168.1.1/undoc_upgrade.stm
) similar to 1. - just select "Master" instead of Firmware or Bootloader.
I'm trying to understand what's actually being done in the above steps.
My current understanding:
A. Append the u-boot nor
-image to the *-nor-squasfs-sysupgrade.bin
-image
B. Append the board_config
obtained from stock firmware with the image generated in A.
The resulting image should consume the exact size of the available flash storage on the device.
C. Flash the resulting image via brnboot
's recovery interface.
After the successful flash, and ssh-ing into the device, I am presented with the following MTD partition-layout:
# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00020000 "board_config"
mtd1: 00060000 00020000 "uboot"
mtd2: 00020000 00020000 "uboot-env"
mtd3: 00f60000 00020000 "firmware"
mtd4: 001eaeb2 00020000 "kernel"
mtd5: 00d7514e 00020000 "rootfs"
mtd6: 009c0000 00020000 "rootfs_data"
Questions:
Image:
-
Once I built my squashfs-image, which partitions will be replaced when flashing the image?
Is my assumption correct, thatmtd4
-mtd6
would be replaced by the new image whilemtd0
throughmtd2
remain untouched?
Or, would I have to do the concatenation dance every time I'd want to flash a new image?
I.e. download/build my squashfs image, appendboard_config
anduboot
, then flash. -
What's stored in
board_config
? Should I keep a copy of the original dump I made from the stock partition, or could this easily be regenerated? -
According to this thread, it should be possible to enable to the second core on the device.
@slh kindly pointed me in the direction of the device tree (DTS):
You'll need to edit the DTS, in order to disable the voice core reservation and enable SMP, before recompiling an image.
It seems that there exist no specific dts-file in the openwrt source for this particular device - at least I couldn't find one:
find -name "*lantiq*.dts"
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce1588.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020-v18.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98021.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-sfp.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nand.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88444.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nor.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nand.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_lantiq_easy50712.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88388.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-mdu.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-sflash.dts
./target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nor.dts
Does "voice core reservation" pertain to the SIP
capabilities of this device, or is this related to something entirely different?
How would I disable the "voice core reservation" and enable SMP
and create the appropriate DTS file for this device?
VDSL:
The documentation indicates that I should pick the appropriate DSL firmware from this page.
- How do I choose the correct VDSL firmware?
Do I have to make the choice depending on the device?
The type of DSL line?
Is it specific to my telecom provider?
Or, more generally, what's the algorithm for picking the correct firmware?
Thanks!