Error phenomena:
dm9000 dm9000:read Wrong ID 0x2b2a2928
dm9000 Dm9000:wrong id:0x2b2a2928
dm9000 Dm9000:not found (-19).
TCP Cubic Registered
Net:registered Protocol Family 17
Registering the Dns_resolver key type
VFP Support V0.3:implementor Architecture 3 Part variant C Rev 2
Vfs:unable to mount Root FS via NFS, trying floppy.
Vfs:cannot Open Root Device "NFS" or Unknown-block (2,0)
Please append a correct "root=" boot option; Here is the available partitions:
Kernel Panic-not syncing:VFS:Unable to mount Root fs on Unknown-block (2,0)
Configure the kernel to support NFS + DM9000, some of which refer to network articles:
(1) Configuring network support
[*] Networking Support--->
Networking Options--->
<*> Packet Socket
<*> Unix domain sockets
[*] TCP/IP Networking
[*] Ip:multicasting
[*] Ip:kernel level Autoconfiguration
[*] IP:DHCP Support
[*] IP:BOOTP Support
[*] Ip:rarp Support
[*] Ip:multicast Routing
(2) Configure network card device support
Device Drivers--->
[*] Network Device Support--->
[*] Ethernet Driver Support--->
<*> DM9000 Support
(3) Configuring Network File system support
File Systems--->
[*] Network File Systems--->
<*> NFS Client Support
<*> NFS Client Support for NFS version 2
<*> NFS Client Support for NFS version 3
[*] NFS client Support for the NFSv3 ACL protocol extension
<*> NFS Client Support for NFS version 4
[*] Root file system on NFS
Re-configuring NFS, configuring NFS server under Ubuntu is simple
sudo apt-get install Nfs-kernel-server
Then open the/etc/exports file with root privileges, my NFS root directory is/nfsroot, the general situation uses version 2,3, so set export to
/nfsroot/* (Rw,sync,no_subtree_check)
Shared directory name all IPs (various attributes)
The No_subtree_check property in the best is to take, I was not quite clear, the use of no_root_squash, the result will lead to mount.nfs:access denied by the server while mounting and other errors
Finally, you also need to modify the permissions of the next/nfsroot, for later use convenience.
chmod 755/nfsroot
A few more commands are attached:
Restart NFS Service: Sudo/etc/init.d/nfs-kernel-server restart
If prompted cannot register service:RPC:Unable to receive; errno = Connection refused
Need to install Portmap first, then start Sudo/etc/init.d/portmap start
Next is to modify the kernel, support DM9000 NIC
Arch/arm/mach-s5pv210/mach-smdkv210.c
#define S5PV210_PA_DM9000_A (0x88001000)
#define S5PV210_PA_DM9000_F (s5pv210_pa_dm9000_a + 0x300c)
//
static struct resource smdkv210_dm9000_resources[] = {
[0] = {
. Start = S5pv210_pa_dm9000_a,//Address line
. end = S5pv210_pa_dm9000_a + Sz_1k*4-1,
. Flags = Ioresource_mem,
},
[1] = {
. Start = S5pv210_pa_dm9000_f,//Data cable
. end = S5pv210_pa_dm9000_f + Sz_1k*4-1,
. Flags = Ioresource_mem,
},
[2] = {
. Start = Irq_eint (7),
. End = Irq_eint (7),
. Flags = IORESOURCE_IRQ | ioresource_irq_highlevel,//Interrupt resources and high-frequency storage hair Resources
},
};
static struct Dm9000_plat_data Smdkv210_dm9000_platdata = {
. Flags = Dm9000_platf_16bitonly | Dm9000_platf_no_eeprom,//16bit mode
. dev_addr = {0x08, 0x90, 0x00, 0xa0, 0x02, 0x10},//Setting the physical address of the network card
};
static void __init smdkv210_dm9000_init (void)
{
unsigned int tmp;
Gpio_request (S5PV210_MP01 (1), "nCS1");
S3c_gpio_cfgpin (S5PV210_MP01 (1), S3C_GPIO_SFN (2));
Gpio_free (S5PV210_MP01 (1));
TMP = (5 << s5p_srom_bcx__tacc__shift);
__raw_writel (TMP, S5P_SROM_BC1);
TMP = __RAW_READL (S5P_SROM_BW);
TMP &= (s5p_srom_bw__cs_mask << s5p_srom_bw__ncs1__shift);
TMP |= (1 << s5p_srom_bw__ncs1__shift);
__raw_writel (TMP, S5P_SROM_BW);
}
Complete, recompile the kernel
Reprint Modify Linux kernel DM9000 support tiny210 Development Board