2019年4月11日 星期四

BeagleBone NFS 開機

用網路開機通常在uboot 有兩個步驟
  1. 用TFTP 將zImage 及 dtb 下載到板子上
  2. 用NFS 開機
但步驟1 也可以改成載入板子上的zImage 及 dtb (調整uboot 參數)
只做NFS 開機的部分,用途主要是方便測試
因為用SD 卡還需要準備一台實體的Linux PC 才能製作ext4 的磁區
但現在常常用VM Linux 開發,這時候直接用NFS 開機可以很快測試
甚至在VM cross compile 完的檔案就直接cp 到NFS 的路徑,連scp 都省了呢

先確認你的板子的Linux Kernel 有沒有支援NFS,沒有就要重build kernel

Server 端 - NFS 設置

Ubuntu 安裝 NFS server
apt-get install nfs-kernel-server
修改NFS server 設置,設定使用的port
gedit /etc/default/nfs-kernel-server
/etc/default/nfs-kernel-server
#RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="-p 13100"
設置NFS 路徑
路徑隨意,我是照uboot 的default 設置
將RFS 檔案放到裡面
(busybox.tar.gz 是之前自己做的busybox static library 的版本)
mkdir -p /export/rootfs
tar zxvf ./busybox.tar.gz -C /export/rootfs
還一個檔案要設置,要指定NFS 的位置及權限
gedit /etc/exports
星號代表任意的IP 連線都可以
/etc/exports
/export/rootfs *(rw,subtree_check,no_root_squash,no_all_squash,sync)
啟動NFS server
service nfs-kernel-server restart

Server 端 - TFTP 設置
Ubuntu 安裝TFTP server 並設置
apt-get install tftpd-hpa
gedit /etc/default/tftpd-hpa
TFTP_DIRECTORY 可以自行修改
把zImage 及dtb 檔案放入TFTP_DIRECTORY 目錄下
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
修改tftpboot 目錄的權限並啟動tftpd
chown nobody\: /var/lib/tftpboot
chmod 777 /var/lib/tftpboot
/etc/init.d/tftpd-hpa start
PS : 如果tftpd 啟動失敗,檢查/etc/init.d/tftpd-hpa 腳本
我是把裡面檢查 init_is_upstart 拿掉解決啟動失敗的問題

可以用tftp 指令測試TFTP server 功能
apt-get install tftp-hpa
 
 
cd ~
tftp 127.0.0.1
>get /zImage
>quit
ls
 
 
rm ./zImage

uboot 指令修改

記得準備serial cap 接到beaglebone及PC才能debug
1.開機時按下space 進入uboot
2.打指令printenv 確認目前uboot的設定 (如下)
因為我uboot是beaglebone 官方相關資源取得的,所以有預設許多uboot的參數

 Click here to expand...
所以我只需要再設置以下兩個參數及執行netboot
setenv fdtfile am335x-bonegreen.dtb
setenv serverip 172.16.9.139
 
 
run netboot
接著uboot 就會用TFTP 將zImage 及dtb 下載到板子上,並用NFS 開機
如果不想用TFTP 下載檔案,就是修改uboot 繞過去這個步驟,直接執行loadimage 

PS : 實際上用NFS 開機只需要以下指令
(zImage 及dtb 直接用板子上的檔案)
load mmc 0:2 0x82000000 /boot/zImage
load mmc 0:2 0x88000000 /boot/am335x-bonegreen.dtb
 
 
setenv bootargs "console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},nolock rw ip=dhcp"
setenv serverip 172.16.9.139
setenv rootpath /export/rootfs
dhcp
bootz 0x82000000 - 0x88000000

開機畫面



Booting from network ...
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 172.16.9.194 (282 ms)
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 172.16.9.139; our IP address is 172.16.9.194
Filename 'zImage'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##########################################################
         3.1 MiB/s
done
Bytes transferred = 5615208 (55ae68 hex)
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 172.16.9.139; our IP address is 172.16.9.194
Filename 'am335x-bonegreen.dtb'.
Load address: 0x88000000
Loading: ##
         2.8 MiB/s
done
Bytes transferred = 26118 (6606 hex)
Kernel image @ 0x82000000 [ 0x000000 - 0x55ae68 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff6000, end 8ffff605 ... OK
 
Starting kernel ...
 
Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.8.13 (root@tux) (gcc version 4.9.4 (Gentoo 4.9.4 p1.0, pie-0.6.4) ) #1 SMP Thu Jan 19 10:16:44 CST 2017
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES2.1 (l2cache sgx neon )
[    0.000000] PERCPU: Embedded 9 pages/cpu @c0d95000 s14080 r8192 d14592 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129792
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/nfs nfsroot=172.16.9.139:/export/rootfs,nolock rw ip=dhcp
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] allocated 1048576 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 511MB = 511MB total
[    0.000000] Memory: 507868k/507868k available, 16420k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf800000 - 0xbfe00000   (   6 MB)
[    0.000000]       .text : 0xc0008000 - 0xc083f340   (8413 kB)
[    0.000000]       .init : 0xc0840000 - 0xc0880700   ( 258 kB)
[    0.000000]       .data : 0xc0882000 - 0xc090a900   ( 547 kB)
[    0.000000]        .bss : 0xc090a900 - 0xc0984080   ( 486 kB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] NR_IRQS:0 nr_irqs:0 0
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000228] Calibrating delay loop... 993.47 BogoMIPS (lpj=969728)
[    0.029186] pid_max: default: 32768 minimum: 301
[    0.029325] Security Framework initialized
[    0.029384] Mount-cache hash table entries: 512
[    0.035175] Initializing cgroup subsys cpuacct
[    0.035198] Initializing cgroup subsys memory
[    0.035236] Initializing cgroup subsys blkio
[    0.035323] CPU: Testing write buffer coherency: ok
[    0.035694] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.035746] Setting up static identity map for 0x804d9e18 - 0x804d9e64
[    0.036651] Brought up 1 CPUs
[    0.036665] SMP: Total of 1 processors activated (993.47 BogoMIPS).
[    0.037438] devtmpfs: initialized
[    0.045876] omap_hwmod: wd_timer2: _wait_target_disable failed
[    0.098007] pinctrl core: initialized pinctrl subsystem
[    0.098141] rstctl core: initialized rstctl subsystem
[    0.098428] regulator-dummy: no parameters
[    0.098730] NET: Registered protocol family 16
[    0.099227] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.104768] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.105320] platform 49000000.edma: alias fck already exists
[    0.105373] platform 49000000.edma: alias fck already exists
[    0.105389] platform 49000000.edma: alias fck already exists
[    0.106064] OMAP GPIO hardware version 0.1
[    0.108432] gpio-rctrl rstctl.4: loaded OK
[    0.111699] No ATAGs?
[    0.111713] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.112937] cpsw.0: No hwaddr in dt. Using 68:c9:0b:ed:0e:ed from efuse
[    0.112955] cpsw.1: No hwaddr in dt. Using 68:c9:0b:ed:0e:ef from efuse
[    0.120899] bio: create slab <bio-0> at 0
[    0.127060] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[    0.127327] vmmcsd_fixed: 3300 mV
[    0.128855] SCSI subsystem initialized
[    0.129093] usbcore: registered new interface driver usbfs
[    0.129165] usbcore: registered new interface driver hub
[    0.129346] usbcore: registered new device driver usb
[    0.130154] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    0.131104] input: tps65217_pwr_but as /devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0
[    0.132650] DCDC1: at 1500 mV
[    0.133485] vdd_mpu: 925 <--> 1325 mV at 1325 mV
[    0.134282] vdd_core: 925 <--> 1150 mV at 1125 mV
[    0.135120] LDO1: at 1800 mV
[    0.135904] LDO2: at 3300 mV
[    0.137385] LDO3: 1800 mV
[    0.138208] LDO4: at 3300 mV
[    0.138938] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    0.139377] omap_i2c 44e0b000.i2c: unable to select pin group
[    0.139827] omap_i2c 4819c000.i2c: bus 1 rev0.11 at 100 kHz
[    0.141189] omap_i2c 4819c000.i2c: unable to select pin group
[    0.141321] media: Linux media interface: v0.10
[    0.141385] Linux video capture interface: v2.00
[    0.141467] pps_core: LinuxPPS API ver. 1 registered
[    0.141476] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.141500] PTP clock support registered
[    0.141873] Advanced Linux Sound Architecture Driver Initialized.
[    0.142447] NetLabel: Initializing
[    0.142517] NetLabel:  domain hash size = 128
[    0.142525] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.142621] NetLabel:  unlabeled traffic allowed by default
[    0.142768] Switching to clocksource gp_timer
[    0.173443] NET: Registered protocol family 2
[    0.174041] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.174177] TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
[    0.174274] TCP: Hash tables configured (established 4096 bind 4096)
[    0.174339] TCP: reno registered
[    0.174353] UDP hash table entries: 256 (order: 1, 12288 bytes)
[    0.174379] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
[    0.174616] NET: Registered protocol family 1
[    0.175003] RPC: Registered named UNIX socket transport module.
[    0.175014] RPC: Registered udp transport module.
[    0.175021] RPC: Registered tcp transport module.
[    0.175027] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.175456] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[    0.175694] CPU PMU: attempt to register multiple PMU devices!
[    0.175716] arm-pmu: probe of arm-pmu failed with error -28
[    0.175979] omap2_mbox_probe: platform not supported
[    0.327411] VFS: Disk quotas dquot_6.5.2
[    0.327537] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.328249] NFS: Registering the id_resolver key type
[    0.328315] Key type id_resolver registered
[    0.328323] Key type id_legacy registered
[    0.328691] fuse init (API version 7.20)
[    0.329078] Btrfs loaded
[    0.329174] msgmni has been set to 991
[    0.330784] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.330799] io scheduler noop registered
[    0.330807] io scheduler deadline registered
[    0.330829] io scheduler cfq registered (default)
[    0.331879] tps65217-bl tps65217-bl: no platform data provided
[    0.331903] tps65217-bl: probe of tps65217-bl failed with error -22
[    0.332466] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.333748] omap_uart 44e09000.serial: did not get pins for uart0 error: -19
[    0.334022] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    1.077554] console [ttyO0] enabled
[    1.081859] [drm] Initialized drm 1.1.0 20060810
[    1.093698] brd: module loaded
[    1.100494] loop: module loaded
[    1.103884] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.111118] at24 1-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.118339] at24 1-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.125559] at24 1-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.132777] at24 1-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.146625] bone-capemgr bone_capemgr.9: Baseboard: 'A335BNLT,,BBG115081683'
[    1.154108] bone-capemgr bone_capemgr.9: compatible-baseboard=ti,beaglebone-green
[    1.191663] bone-capemgr bone_capemgr.9: slot #0: No cape found
[    1.228769] bone-capemgr bone_capemgr.9: slot #1: No cape found
[    1.265879] bone-capemgr bone_capemgr.9: slot #2: No cape found
[    1.302988] bone-capemgr bone_capemgr.9: slot #3: No cape found
[    1.309205] bone-capemgr bone_capemgr.9: slot #4: specific override
[    1.315774] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 4
[    1.323784] bone-capemgr bone_capemgr.9: slot #4: 'Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G'
[    1.334062] bone-capemgr bone_capemgr.9: initialized OK.
[    1.339643] bone-capemgr bone_capemgr.9: loader: before slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.348469] bone-capemgr bone_capemgr.9: loader: check slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.358564] OneNAND driver initializing
[    1.363422] usbcore: registered new interface driver cdc_ether
[    1.369592] usbcore: registered new interface driver rndis_host
[    1.375837] bone-capemgr bone_capemgr.9: loader: after slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.384634] usbcore: registered new interface driver cdc_ncm
[    1.390578] bone-capemgr bone_capemgr.9: slot #4: Requesting firmware 'cape-bone-2g-emmc1.dtbo' for board-name 'Bone-LT-eMMC-2G', version '00A0'
[    1.404596] usbcore: registered new interface driver cdc_acm
[    1.410522] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.418886] Initializing USB Mass Storage driver...
[    1.424004] bone-capemgr bone_capemgr.9: slot #4: dtbo 'cape-bone-2g-emmc1.dtbo' loaded; converting to live tree
[    1.434714] usbcore: registered new interface driver usb-storage
[    1.440998] USB Mass Storage support registered.
[    1.446022] bone-capemgr bone_capemgr.9: slot #4: #2 overlays
[    1.452612] bone-capemgr bone_capemgr.9: slot #4: Applied #2 overlays.
[    1.459475] bone-capemgr bone_capemgr.9: loader: done slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[    1.468241] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    1.475041] mousedev: PS/2 mouse device common for all mice
[    1.481889] lsm303dlhc_acc accelerometer driver: init
[    1.487292] i2c-core: driver [lsm303dlhc_acc] using legacy suspend method
[    1.494406] i2c-core: driver [lsm303dlhc_acc] using legacy resume method
[    1.501429] lsm303dlhc_mag driver: init
[    1.505503] lsm330_acc accelerometer driver: init
[    1.510479] i2c-core: driver [lsm330_acc] using legacy suspend method
[    1.517222] i2c-core: driver [lsm330_acc] using legacy resume method
[    1.523879] lsm330_gyr: gyroscope sysfs driver init
[    1.529582] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    1.537127] i2c /dev entries driver
[    1.541700] pps_ldisc: PPS line discipline registered
[    1.547070] Driver for 1-wire Dallas network protocol.
[    1.553520] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.561131] device-mapper: ioctl: 4.23.1-ioctl (2012-12-18) initialised: dm-devel@redhat.com
[    1.570021] cpuidle: using governor ladder
[    1.574332] cpuidle: using governor menu
[    1.578720] omap_hsmmc mmc.5: of_parse_phandle_with_args of 'reset' failed
[    1.585920] omap_hsmmc mmc.5: Failed to get rstctl; not using any
[    1.592561] edma-dma-engine edma-dma-engine.0: allocated channel for 0:25
[    1.599714] edma-dma-engine edma-dma-engine.0: allocated channel for 0:24
[    1.606972] mmc.5 supply vmmc_aux not found, using dummy regulator
[    1.613770] omap_hsmmc mmc.5: pins are not configured from the driver
[    1.646951] gpio-rctrl rstctl.4: gpio_rctrl_request eMMC_RSTn
[    1.653082] omap_hsmmc mmc.11: Got rstctl (gpio:#0 name eMMC_RSTn) label:eMMC_RSTn
[    1.661041] gpio-rctrl rstctl.4: gpio_rctrl_deassert eMMC_RSTn
[    1.667346] edma-dma-engine edma-dma-engine.0: allocated channel for 0:3
[    1.674422] edma-dma-engine edma-dma-engine.0: allocated channel for 0:2
[    1.681767] mmc.11 supply vmmc_aux not found, using dummy regulator
[    1.688420] omap_hsmmc mmc.11: pins are not configured from the driver
[    1.723175] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8
[    1.734845] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[    1.742126] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
[    1.751066] leds-gpio gpio-leds.8: pins are not configured from the driver
[    1.758950] ledtrig-cpu: registered to indicate activity on CPUs
[    1.765499] edma-dma-engine edma-dma-engine.0: allocated channel for 0:36
[    1.772651] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    1.780026] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    1.786227] edma-dma-engine edma-dma-engine.0: allocated channel for 0:5
[    1.793353] edma-dma-engine edma-dma-engine.0: allocated channel for 0:6
[    1.803135] usbcore: registered new interface driver usbhid
[    1.809012] usbhid: USB HID core driver
[    1.813903] ashmem: initialized
[    1.817501] logger: created 256K log 'log_main'
[    1.822545] logger: created 256K log 'log_events'
[    1.827715] logger: created 256K log 'log_radio'
[    1.832598] mmc0: host does not support reading read-only switch. assuming write-enable.
[    1.841235] logger: created 256K log 'log_system'
[    1.848095] TCP: cubic registered
[    1.851721] mmc0: new high speed SDHC card at address aaaa
[    1.857544] NET: Registered protocol family 10
[    1.862664] mmcblk0: mmc0:aaaa SL08G 7.40 GiB
[    1.868141] NET: Registered protocol family 17
[    1.873776] Key type dns_resolver registered
[    1.878428] VFP support v0.3: [    1.881562]  mmcblk0: p1 p2
implementor 41 architecture 3 part 30 variant c rev 3
[    1.889540] ThumbEE CPU extension supported.
[    1.894874] Registering SWP/SWPB emulation handler
[    1.900668] registered taskstats version 1
[    1.953385] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.959777] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[    1.966361] mmc1: BKOPS_EN bit is not set
[    1.971510] libphy: 4a101000.mdio: probed
[    1.975766] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    1.985490] Detected MACID = 68:c9:0b:ed:0e:ed
[    1.990074] cpsw 4a100000.ethernet: NAPI disabled
[    1.996796] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[    2.007080] mmc1: new high speed MMC card at address 0001
[    2.017411] net eth0: initializing cpsw version 1.12 (0)
[    2.024701] mmcblk1: mmc1:0001 P1XXXX 3.60 GiB
[    2.029765] mmcblk1boot0: mmc1:0001 P1XXXX partition 1 2.00 MiB
[    2.036483] net eth0: phy found : id is : 0x7c0f1
[    2.041584] libphy: PHY 4a101000.mdio:01 not found
[    2.046607] net eth0: phy 4a101000.mdio:01 not found on slave 1
[    2.054701] mmcblk1boot1: mmc1:0001 P1XXXX partition 2 2.00 MiB
[    2.063308]  mmcblk1: p1 p2
[    2.068822] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    2.077223]  mmcblk1boot1: unknown partition table
[    2.084124]  mmcblk1boot0: unknown partition table
[    5.114045] libphy: 4a101000.mdio:00 - Link is Up - 100/Full
[    5.120043] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    5.133194] Sending DHCP requests ., OK
[    5.156965] IP-Config: Got DHCP answer from 172.16.9.244, my address is 172.16.9.194
[    5.165494] IP-Config: Complete:
[    5.168908]      device=eth0, hwaddr=68:c9:0b:ed:0e:ed, ipaddr=172.16.9.194, mask=255.255.255.0, gw=172.16.9.1
[    5.179364]      host=172.16.9.194, domain=adlinktech.com, nis-domain=(none)
[    5.186946]      bootserver=0.0.0.0, rootserver=172.16.9.139, rootpath=
[    5.193778]      nameserver0=172.16.0.99, nameserver1=172.16.0.100
[    5.200453] ALSA device list:
[    5.203578]   No soundcards found.
[    5.211787] VFS: Mounted root (nfs filesystem) on device 0:12.
[    5.218297] devtmpfs: mounted
[    5.221712] Freeing init memory: 256K
-----------Run rcS-------
 
Gentoo login: root
login[82]: root login on 'ttyO0'

NoSQL Redis intro

Redis是一個使用ANSI C編寫的開源、支援網路、基於記憶體、可選永續性的鍵值對儲存資料庫。 支援rdb 及aof 兩種儲存方式 From  https://zh.wikipedia.org/wiki/Redis Redis 目前擁有兩種資料...