Commit 43730ba72c176ffc4d9858249475f458203d9757
Committed by
Luka Perkov
1 parent
4fe49d7bec
Exists in
v2017.01-smarct4x
and in
37 other branches
lsxl: add a README file
The README describes the recovery method which can be used if the NAS box is not reachable anymore. Addionally, it describes the different boot scripts. Signed-off-by: Michael Walle <michael@walle.cc>
Showing 1 changed file with 139 additions and 0 deletions Side-by-side Diff
board/buffalo/lsxl/README
1 | +Intro | |
2 | +----- | |
3 | +The Buffalo Linkstation Pro/Live, codename LS-XHL and LS-CHLv2, is a single | |
4 | +disk NAS server. The PCBs of the LS-XHL and LS-CHLv2 are almost the same. | |
5 | +The LS-XHL has a faster CPU and more RAM with a wider data bus, therefore | |
6 | +the LS-XHL PCB has two SDRAM chips. Both have a Kirkwood CPU (Marvell | |
7 | +88F6281). The only on-board storage is a 4 Mbit SPI flash which stores the | |
8 | +bootloader and its environment. The linux kernel and the initial ramdisk | |
9 | +are loaded from the hard disk. | |
10 | + | |
11 | + | |
12 | +Rescue Mode | |
13 | +----------- | |
14 | +These linkstations don't have a populated serial port. There is no way to | |
15 | +access an (unmodified) board other than using the netconsole. If you want | |
16 | +to recover from a bad environment setting or an empty environment, you can | |
17 | +do this only with a working network connection. | |
18 | + | |
19 | +Therefore, on entering the resuce mode, a random ethernet address is | |
20 | +generated if no valid address could be loaded from the environment variable | |
21 | +'ethaddr' and a DHCP request is sent. After a successful DHCP response is | |
22 | +received, the network settings are configured and the ncip is unset. Thus | |
23 | +all netconsole packets are broadcasted and you can use the netconsole to | |
24 | +access board from any host within the network segment. To determine the IP | |
25 | +address assigned to the board, you either have to sniff the traffic or | |
26 | +check the logs/leases of your DHCP server. | |
27 | + | |
28 | +The resuce mode is selected by holding the push button for at least one | |
29 | +second, while powering-on the device. The status LED turns solid amber if | |
30 | +the resuce mode is enabled, thus providing a visual feedback. | |
31 | + | |
32 | +Pressing the same button for at least 10 seconds on power-up will erase the | |
33 | +environment and reset the board. In this case the visual indication will | |
34 | +be: | |
35 | +- blinking blue, for about one second | |
36 | +- solid amber, for about nine seconds | |
37 | +- blinking amber, until you release the button | |
38 | + | |
39 | +This ensures, that you still can recover a device with a broken | |
40 | +environment by first erasing the environment and then entering the rescue | |
41 | +mode. | |
42 | + | |
43 | +Once the rescue mode is started, use the ncb binary from the tools/ | |
44 | +directory to access your board. There is a helper script named | |
45 | +'restore_env' to save your changes. It unsets all the network variables | |
46 | +which were set by the rescue mode, saves your changes and then resets the | |
47 | +board. | |
48 | + | |
49 | +The common use case for this is setting a MAC address. Let us assume you | |
50 | +have an empty environment, the board comes up with the amber LED blinking. | |
51 | +Then you enter the rescue mode, connect to the board with the ncb tool and | |
52 | +use the following commands to set your MAC address: | |
53 | + | |
54 | + setenv ethaddr 00:00:00:00:00:00 | |
55 | + run restore_env | |
56 | + | |
57 | +Of course you need to replace the 00:00:00:00:00:00 with your valid MAC | |
58 | +address, which can be found on a sticker on the bottom of your box. | |
59 | + | |
60 | + | |
61 | +Status LED | |
62 | +---------- | |
63 | +blinking blue | |
64 | + Bootloader is running normally. | |
65 | + | |
66 | +blinking amber | |
67 | + No ethaddr set. Use the `Rescue Mode` to set one. | |
68 | + | |
69 | +blinking red | |
70 | + Something bad happend during loading the operating system. | |
71 | + | |
72 | +The default behavior of the linux kernel is to turn on the blue LED. So if | |
73 | +the blinking blue LED changes to solid blue the kernel was loaded | |
74 | +successfully. | |
75 | + | |
76 | + | |
77 | +Power-on Switch | |
78 | +--------------- | |
79 | +The power-on switch is a software switch. If it is not in ON position when | |
80 | +the bootloader starts, the bootloader will disable the HDD and USB power | |
81 | +and stop the fan. Then it loops until the switch is in ON position again, | |
82 | +enables the power and fan again and continue booting. | |
83 | + | |
84 | + | |
85 | +Boot sources | |
86 | +------------ | |
87 | +The environment defines several different boot sources: | |
88 | + | |
89 | +legacy | |
90 | + This is the default boot source. It loads the kernel and ramdisk from the | |
91 | + attached HDD using the original filenames. The load addresses were | |
92 | + modified to support loading larger kernels. But it should behave the same | |
93 | + as the original bootloader. | |
94 | + | |
95 | +hdd | |
96 | + Use this for new-style booting. Loads three files /vmlinuz, /initrd.img | |
97 | + and /dtb from the boot partition. This should work out of the box if you | |
98 | + have debian and the flash-kernel package installed. | |
99 | + | |
100 | +usb | |
101 | + Same as hdd expect, that the files are loaded from an attached USB mass | |
102 | + storage device and the filename for the device tree is kirkwood-lsxhl.dtb | |
103 | + (or kirkwood-lschlv2.dtb). | |
104 | + | |
105 | +net | |
106 | + Same as usb expect, that the file are loaded from the network. | |
107 | + | |
108 | +rescue | |
109 | + Automatically activated if the push button is pressed for at least one | |
110 | + second on power-up. Does a DHCP request and enables the network console. | |
111 | + See `Rescue Mode` for more information. | |
112 | + | |
113 | +You can change the boot source by setting the 'bootsource' variable to the | |
114 | +corresponding value. Please note, that the restore_env script will the the | |
115 | +bootsource back to 'legacy'. | |
116 | + | |
117 | + | |
118 | +Flash map | |
119 | +--------- | |
120 | +00000 - 5ffff u-boot | |
121 | +60000 - 6ffff reserved, may be used to store dtb | |
122 | +70000 - 7ffff u-boot environment | |
123 | + | |
124 | + | |
125 | +Compiling | |
126 | +--------- | |
127 | +make lsxhl_config (or lschlv2_config) | |
128 | +make u-boot.kwb | |
129 | + | |
130 | + | |
131 | +Update your board | |
132 | +----------------- | |
133 | +Just flash the resulting u-boot.kwb to the beginning of the SPI flash. If | |
134 | +you already have a bootloader CLI, you can use the following commands: | |
135 | + | |
136 | + sf probe 0 | |
137 | + bootp ${loadaddr} u-boot.kwb | |
138 | + sf erase 0 +${filelen} | |
139 | + sf write 0 ${fileaddr} ${filesize} |