Son aktivite 1 month ago

racerxdl's Avatar Lucas Teske bu gisti düzenledi 5 years ago. Düzenlemeye git

1 file changed, 12 insertions

odroidu3-5.1.md

@@ -26,4 +26,16 @@ On device
26 26 $ sudo update-initramfs -c -k ${kver}
27 27 $ sudo mkimage -A arm -O linux -T ramdisk -a 0x0 -e 0x0 -n initrd.img-${kver} -d initrd.img-${kver} uInitrd-${kver}
28 28 $ sudo cp uInitrd-${kver} /media/boot/uInitrd
29 + ```
30 +
31 + Edit `/media/boot/boot.txt`:
32 + add to kernel line
33 + ```
34 + smsc95xx.macaddr=96:e3:f1:9a:b0:8a
35 + ```
36 +
37 + Generate boot.scr:
38 +
39 + ```bash
40 + mkimage -A arm -T script -C none -n "Boot.scr for ODROID" -d /media/boot/boot.txt /media/boot/boot.scr
29 41 ```

racerxdl's Avatar Lucas Teske bu gisti düzenledi 5 years ago. Düzenlemeye git

1 file changed, 2 insertions

odroidu3-5.1.md

@@ -6,6 +6,8 @@ Apply patch for smsc mac address:
6 6
7 7 https://netdev.vger.kernel.narkive.com/Fi2roLel/patch-smsc95xx-add-module-parameter-to-override-mac-address
8 8
9 + Or use https://github.com/racerxdl/linux-odroid-public
10 +
9 11 ```bash
10 12 sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
11 13 export ARCH=arm

racerxdl's Avatar Lucas Teske bu gisti düzenledi 5 years ago. Düzenlemeye git

2 files changed, 86 insertions

odroidu3-5.1.md

@@ -2,6 +2,9 @@ Compiling Kernel 5.1 for Odroid U3
2 2
3 3 https://github.com/umiddelb/armhf/wiki/How-To-compile-a-custom-Linux-kernel-for-your-ARM-device#examples
4 4
5 + Apply patch for smsc mac address:
6 +
7 + https://netdev.vger.kernel.narkive.com/Fi2roLel/patch-smsc95xx-add-module-parameter-to-override-mac-address
5 8
6 9 ```bash
7 10 sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

smsc_mac.patch(dosya oluşturuldu)

@@ -0,0 +1,83 @@
1 + diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
2 + index 3135af6..0ba06d9 100644
3 + --- a/drivers/net/usb/smsc95xx.c
4 + +++ b/drivers/net/usb/smsc95xx.c
5 + @@ -46,6 +46,7 @@
6 + #define SMSC95XX_INTERNAL_PHY_ID (1)
7 + #define SMSC95XX_TX_OVERHEAD (8)
8 + #define SMSC95XX_TX_OVERHEAD_CSUM (12)
9 + +#define MAC_ADDR_LEN (6)
10 +
11 + struct smsc95xx_priv {
12 + u32 mac_cr;
13 + @@ -63,6 +64,10 @@ static int turbo_mode = true;
14 + module_param(turbo_mode, bool, 0644);
15 + MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
16 +
17 + +static char *macaddr = ":";
18 + +module_param(macaddr, charp, 0);
19 + +MODULE_PARM_DESC(macaddr, "MAC address");
20 + +
21 + static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data)
22 + {
23 + u32 *buf = kmalloc(4, GFP_KERNEL);
24 + @@ -637,8 +642,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
25 + return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
26 + }
27 +
28 + +/* Check the macaddr module parameter for a MAC address */
29 + +static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac)
30 + +{
31 + + int i, j, got_num, num;
32 + + u8 mtbl[MAC_ADDR_LEN];
33 + +
34 + + if (macaddr[0] == ':')
35 + + return 0;
36 + +
37 + + i = 0;
38 + + j = 0;
39 + + num = 0;
40 + + got_num = 0;
41 + + while (j < MAC_ADDR_LEN) {
42 + + if (macaddr[i] && macaddr[i] != ':') {
43 + + got_num++;
44 + + if ('0' <= macaddr[i] && macaddr[i] <= '9')
45 + + num = num * 16 + macaddr[i] - '0';
46 + + else if ('A' <= macaddr[i] && macaddr[i] <= 'F')
47 + + num = num * 16 + 10 + macaddr[i] - 'A';
48 + + else if ('a' <= macaddr[i] && macaddr[i] <= 'f')
49 + + num = num * 16 + 10 + macaddr[i] - 'a';
50 + + else
51 + + break;
52 + + i++;
53 + + } else if (got_num == 2) {
54 + + mtbl[j++] = (u8) num;
55 + + num = 0;
56 + + got_num = 0;
57 + + i++;
58 + + } else {
59 + + break;
60 + + }
61 + + }
62 + +
63 + + if (j == MAC_ADDR_LEN && !macaddr[i]) {
64 + + netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: "
65 + + "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2],
66 + + mtbl[3], mtbl[4], mtbl[5]);
67 + + for (i = 0; i < MAC_ADDR_LEN; i++)
68 + + dev_mac[i] = mtbl[i];
69 + + return 1;
70 + + } else {
71 + + return 0;
72 + + }
73 + +}
74 + +
75 + static void smsc95xx_init_mac_address(struct usbnet *dev)
76 + {
77 + + /* Check module parameters */
78 + + if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
79 + + return;
80 + +
81 + /* try reading mac address from EEPROM */
82 + if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
83 + dev->net->dev_addr) == 0) {

racerxdl's Avatar Lucas Teske bu gisti düzenledi 5 years ago. Düzenlemeye git

1 file changed, 3 insertions

odroidu3-5.1.md

@@ -1,3 +1,6 @@
1 + Compiling Kernel 5.1 for Odroid U3
2 +
3 + https://github.com/umiddelb/armhf/wiki/How-To-compile-a-custom-Linux-kernel-for-your-ARM-device#examples
1 4
2 5
3 6 ```bash

racerxdl's Avatar Lucas Teske bu gisti düzenledi 5 years ago. Düzenlemeye git

1 file changed, 21 insertions

odroidu3-5.1.md(dosya oluşturuldu)

@@ -0,0 +1,21 @@
1 +
2 +
3 + ```bash
4 + sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
5 + export ARCH=arm
6 + export CROSS_COMPILE=arm-linux-gnueabihf-
7 +
8 + make exynos_defconfig
9 + make menuconfig ( i need to enable some modules to make the the usb keyboard work)
10 + make -j5 zImage modules dtbs
11 + make modules_install ARCH=arm INSTALL_MOD_PATH=../modules
12 +
13 + cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4412-odroidu3.dtb > zImage_dtb
14 + ```
15 +
16 + On device
17 + ```bash
18 + $ sudo update-initramfs -c -k ${kver}
19 + $ sudo mkimage -A arm -O linux -T ramdisk -a 0x0 -e 0x0 -n initrd.img-${kver} -d initrd.img-${kver} uInitrd-${kver}
20 + $ sudo cp uInitrd-${kver} /media/boot/uInitrd
21 + ```
Daha yeni Daha eski