Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
toh:linksys:lgs352c [2024/08/03 19:53] – bla plappermaultoh:linksys:lgs352c [2024/10/18 19:22] – [USB] plappermaul
Line 1: Line 1:
 ====== Linksys LGS3xxC / LGS3xxMPC ====== ====== Linksys LGS3xxC / LGS3xxMPC ======
  
-Linksys LGS3xxC / LGS3xxMPC is a series of smart gigabyte L3 switches running Linux. OpenWrt supports **LGS310C**.+Linksys LGS3xxC / LGS3xxMPC are a series of smart gigabyte switches based on the RTL83xx/RTL93xx SOCs. OpenWrt supports **LGS310C**.
  
 ===== U-Boot ===== ===== U-Boot =====
Line 9: Line 9:
 ===== Dual boot ===== ===== Dual boot =====
  
-The devices support dual boot with two firmware images. In case only serial console access is possible execute the following commands to change the active image.+The devices support dual boot with two firmware images. In case something went badly wrong one execute the following commands to change the active image.
  
 U-Boot switch to first image and reboot U-Boot switch to first image and reboot
Line 50: Line 50:
 LGS3xxC# reboot LGS3xxC# reboot
 </code> </code>
 +
 +Switch from OpenWrt running on primary partion back to vendor firmware running on secondary partition 
 +
 +<code>
 +root@OpenWrt:/# fw_setsys bootpartition 1
 +root@OpenWrt:/# reboot
 +</code>
 +
 +===== Installation =====
 +
 +Although being dual image devices OpenWrt can only be installed to the primary partition
 +
 +
 +==== Install from web interface (easy) ====
 +
 +:!: Before you install OpenWrt on the switch boot it with vendor firmware from active partition 2. :!:
 +
 +Upload image openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-factory.imag from the vendor WebUI via Configure > Maintenance > Firmware upgrade to the first partition. At the time of upload it should be labeled "Backup".
 +
 +==== Install from CLI (convenient) ====
 +
 +:!: Before you install OpenWrt on the switch boot it with vendor firmware from backup partition 2. :!:
 +
 +If one has enabled SSH CLI in the vendor firmare the OpenWrt image can be installed via tftp from command line. Afterwards switch boot process to primary partition.
 +
 +<code>
 +LGS3xxC# boot system image2
 +Setup partition 2 as active.
 +LGS3xxC# show activepartition
 +Activepartition is partition 2.
 +LGS3xxC# reboot
 +
 +LGS3xxC# firmware upgrade tftp://192.168.2.86/openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-factory.imag flash:normal image 1
 + ...Completed: 10 %, Time: 01:20(M:S) ...
 + ...Completed: 20 %, Time: 01:20(M:S) ...
 + ...Completed: 30 %, Time: 01:20(M:S) ...
 + ...Completed: 40 %, Time: 01:20(M:S) ...
 + ...Completed: 50 %, Time: 01:20(M:S) ...
 + ...Completed: 60 %, Time: 01:20(M:S) ...
 + ...Completed: 70 %, Time: 01:20(M:S) ...
 + ...Completed: 80 %, Time: 01:20(M:S) ...
 + ...Completed: 90 %, Time: 01:20(M:S) ...
 +% Firmware upgrade successful ..!!!
 +
 +LGS3xxC# boot system image1
 +Setup partition 1 as active.
 +LGS3xxC# show activepartition
 +Activepartition is partition 1.
 +LGS3xxC# reboot
 +</code>
 +
 +==== Install from serial console (hard) ====
 +
 +When you have access to the serial console you can directly install the sysupgrade image from an TFTP server. Finally change the boot order to the primary partition.
 +
 +<code>
 +switch# # upgrade runtime 192.168.2.86:openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-sysupgrade.bin
 +Upgrade runtime image [192.168.2.86:openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-sysupgrade.bin]......
 +Enable network
 +Force port28 link up 1G
 +Please wait for PHY init-time ...
 +
 +Using rtl8380#0 device
 +TFTP from server 192.168.2.86; our IP address is 192.168.2.70
 +Filename 'openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-sysupgrade.bin'.
 +Load address: 0x81000000
 +Loading: #################################################################
 +         #################################################################
 +         #####################
 +done
 +Bytes transferred = 6030120 (5c0328 hex)
 +   Image Name:   MIPS OpenWrt Linux-5.15.161
 +   Model Name:
 +   Magic Number: 27051956
 +   Created:      2024-07-30  19:42:33 UTC
 +   Image Type:   MIPS Linux Kernel Image (gzip compressed)
 +   Data Size:    3316370 Bytes = 3.2 MB
 +   Load Address: 80100000
 +   Entry Point:  80100000
 +II: Erasing 13828096 bytes from 005a0000... 100%
 +II: Writting 13828096 bytes to 005a0000... 100%
 +Comparing file ......
 +Total of 13828096 bytes were the same
 +Upgrade runtime image [192.168.2.86:openwrt-realtek-rtl838x-linksys_lgs310c-squashfs-sysupgrade.bin] to partition 0 success
 +
 +switch# # setsys bootpartition 0
 +switch# # savesys
 +Erasing SPI flash...II: Erasing 4096 bytes from 00090000... 100%
 +Writing to SPI flash...II: Writting 4096 bytes to 00090000... 100%
 +done
 +switch# # boota
 +## Booting image from partition ... 0
 +</code>
 +
 +
 +
  
 ===== Images ===== ===== Images =====
Line 55: Line 151:
 ==== File encapsulation ==== ==== File encapsulation ====
  
-Linksys firmware images are constructed of 64 byte header and an appended tar archive. +Linksys firmware images are constructed of two parts: 
 + 
 +  * A 64 byte header that resembles a U-Boot legacy format image header, all data in network byte order (aka natural aka bigendian) 
 +  * an appended tar archive. 
  
 ^ start ^ size ^ description ^ ^ start ^ size ^ description ^
Line 73: Line 172:
 The tar archive contains several files. The tar archive contains several files.
  
-^ filename ^  description ^+^ filename ^ description ^
 | firmware_information.txt | version information | | firmware_information.txt | version information |
 | iss_imagecheck.sh | check if firmware matches the board | | iss_imagecheck.sh | check if firmware matches the board |
 | iss_imageupgrade.sh | upgrade script | | iss_imageupgrade.sh | upgrade script |
 | supportlist.txt | list of supported boards | | supportlist.txt | list of supported boards |
-| series_vmlinux.bix | 64 byte header plus image data |+| series_vmlinux.bix | boot image |
  
-The series_vmlinux.bix file has a similar header to the main firmware image 
- 
-^ start ^ size ^ description ^ 
-| 0 | 4 | magic number | 
-| 4 | 4 | header CRC (based on CRC32) | 
-| 8 | 4 | creation date ( Unix timestamp in seconds sind 01.01.1970 ) | 
-| 12 | 4 | size of appended data | 
-| 16 | 8 | unknown | 
-| 24 | 4 | CRC of appended tar archive (based on CRC32) | 
-| 28 | 4 | unknown | 
-| 32 | 32 | module name (= readable image name) | 
-| 64 | ... | to be burned data | 
  
 ==== Boards ==== ==== Boards ====
Line 126: Line 213:
 ^ start     ^ size       ^ name          ^ description ^ ^ start     ^ size       ^ name          ^ description ^
 | 0x00000000 | 0x00080000 | LOADER   | U-Boot | | 0x00000000 | 0x00080000 | LOADER   | U-Boot |
-| 0x00080000 | 0x00090000 | BDINFO   | U-Boot environment (printenv/setenv) | +| 0x00080000 | 0x00010000 | BDINFO   | U-Boot environment (printenv/setenv use 64K) | 
-| 0x00090000 | 0x000a0000 | SYSINFO  | System information (printsys/setsys) | +| 0x00090000 | 0x00010000 | SYSINFO  | System information (printsys/setsys use 4K) | 
-| 0x000a0000 | 0x005a0000 | JFFS2 CFG | |+| 0x000a0000 | 0x00500000 | JFFS2 CFG | |
 | 0x005a0000 | 0x00d30000 | KERNEL    | primary image | | 0x005a0000 | 0x00d30000 | KERNEL    | primary image |
 | 0x012d0000 | 0x00d30000 | KERNEL2   | secondary image | | 0x012d0000 | 0x00d30000 | KERNEL2   | secondary image |
Line 147: Line 234:
  
 {{:media:lgs352c-3.jpg?400|}} {{:media:lgs352c-3.jpg?400|}}
 +
 +==== USB ====
 +Picture of the USB/LED/Console area
  
 {{:media:lgs352c-4.jpg?400|}} {{:media:lgs352c-4.jpg?400|}}
 +
 +USB lanes with missing resistors (and other stuff). Assumption is
 +
 +- R are 22 Ohm resistors
 +- D is a TVS diode (Transient Voltage Suppressor)
 +- L is unknown 
 +
 +{{:media:lgs-352c-usb.jpg?nolink&400|}}
 +==== NAND ====
 +Picture of the 128MB (1GBit) NAND.
  
 {{:media:lgs352c-5.jpg?400|}} {{:media:lgs352c-5.jpg?400|}}
 +
 +Nand startup log:
 +<code>
 +RTK_SPI_NAND driver is used
 +[rtk_spi_nand_detect] Start to probe SPI NAND Flash ......
 +[rtk_spi_nand_detect] Probe SPI NAND Flash Successed !!!
 +Use nandbase bb func
 +Use nandbase bb scan
 +nand: device found, Manufacturer ID: 0xc2, Chip ID: 0x12
 +nand: Macronix
 +nand: 128MiB, SLC, page size: 2048, OOB size: 64
 +Scanning device for bad blocks
 +Bad eraseblock 114 at 0x000000e40000
 +Creating 3 MTD partitions on "spinand":
 +0x000000000000-0x000004000000 : "ubifs"
 +0x000004000000-0x000005e00000 : "runtime1"
 +0x000005e00000-0x000007c00000 : "runtime2"
 +Creating 1 MTD partitions on "rtk_norsf_g3":
 +0x000000100000-0x000000200000 : "JFFS2 CFG"
 +Realtek SPINAND Flash Driver is successfully installing.
 +ipip: IPv4 over IPv4 tunneling driver
 +TCP: cubic registered
 +NET: Registered protocol family 17
 +console [netcon0] enabled
 +netconsole: network logging started
 +Freeing unused kernel memory: 16952K (803f2000 - 81480000)
 +## Error: "init_customize" not defined
 +UBI: attaching mtd4 to ubi0
 +[SPINAND] ECC ERROR(ret=ECDEAD08) page_addr = 6BC1! Do retry!
 +[SPINAND] ECC ERROR(ret=ECDEAD08) page_addr = 6BC1!
 +UBI: scanning is finished
 +UBI: attached mtd4 (name "ubifs", size 64 MiB) to ubi0
 +UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
 +UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
 +UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
 +UBI: good PEBs: 511, bad PEBs: 1, corrupted PEBs: 0
 +UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
 +UBI: max/mean erase counter: 3/1, WL threshold: 4096, image sequence number: 539790213
 +UBI: available PEBs: 0, total reserved PEBs: 511, PEBs reserved for bad PEB handling: 19
 +UBI: background thread "ubi_bgt0d" started, PID 40
 +UBI device number 0, total 511 LEBs (64884736 bytes, 61.9 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
 +</code>
 +
  
  • Last modified: 2024/10/18 20:24
  • by plappermaul