Lucas Teske hat die Gist bearbeitet 5 years ago. Zu Änderung gehen
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 | ``` | |
Lucas Teske hat die Gist bearbeitet 5 years ago. Zu Änderung gehen
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 | |
Lucas Teske hat die Gist bearbeitet 5 years ago. Zu Änderung gehen
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(Datei erstellt)
| @@ -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) { | |
Lucas Teske hat die Gist bearbeitet 5 years ago. Zu Änderung gehen
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 | |
Lucas Teske hat die Gist bearbeitet 5 years ago. Zu Änderung gehen
1 file changed, 21 insertions
odroidu3-5.1.md(Datei erstellt)
| @@ -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 | + | ``` | |