Thank you Robert for your fast answer,

And how does the official scripts manage to avoid the race condition ?

I have been looking at generic-boot-script.sh that is loaded at init and to 
am335x_evm.sh (after loading SOC.sh). I tried to replicate the same 
behaviour but just writing a replacemente service file for 
generic-boot-script,calling directly to the beaglebone-black-g-ether-load.sh 
script. I'm using the same ti kernel from your repository.

I tried adding musb_hdrc on the initramfs, but i'm no sure if it's the 
correct way to go. I'm still trying to learn how all the boot process works.

Best regards,

On Friday, May 22, 2015 at 2:54:43 PM UTC+2, RobertCNelson wrote:
>
> On Fri, May 22, 2015 at 6:01 AM, Iñigo Martínez <[email protected] 
> <javascript:>> wrote: 
> > 
> > Hi, 
> > 
> > I have installed a custom Debian using the steps on eewiki. I have 
> > downloaded the beaglebone-black-g-ether-load.sh script to load g_ether, 
> and 
> > finally I have created a systemd service to load it as follows: 
> > 
> > [Unit] 
> > Description=Generic BeagleBone Black at boot time 
> > Requires=systemd-journald.socket basic.target 
> > After=local-fs.target systemd-journald.socket basic.target 
> > 
> > [Service] 
> > Type=simple 
> > ExecStart=/opt/scripts/beaglebone-black-g-ether-load.sh 
> > StandardOutput=journal 
> > Restart=no 
> > 
> > [Install] 
> > WantedBy=multi-user.target 
> > 
> > When booting the service outputs an error when loading the g_multi 
> module: 
> > 
> > may 22 12:54:57 beaglebone beaglebone-black-g-ether-load.sh[185]: 
> cpsw.0: 
> > 7C:66:9D:46:4B:43 
> > may 22 12:54:57 beaglebone beaglebone-black-g-ether-load.sh[185]: 
> cpsw.1: 
> > 7C:66:9D:46:4B:45 
> > may 22 12:54:57 beaglebone beaglebone-black-g-ether-load.sh[185]: 
> modprobe: 
> > ERROR: could not insert 'g_multi': No such device 
> > 
> > I have seen that there is another discussion related to this problem, 
> but 
> > the difference in this case is that it load after login in the system 
> and 
> > executing the script by hand. 
> > 
> > I can't figure out what is the difference between both cases and why it 
> > doesn't work on boot. 
> > 
> > More information: 
> > 
> > root@beaglebone:~# printenv 
> > XDG_SESSION_ID=1 
> > TERM=xterm 
> > SHELL=/bin/bash 
> > USER=root 
> > MAIL=/var/mail/root 
> > PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
> > PWD=/root 
> > LANG=en_US.UTF-8 
> > SHLVL=1 
> > HOME=/root 
> > LOGNAME=root 
> > XDG_RUNTIME_DIR=/run/user/0 
> > _=/usr/bin/printenv 
> > 
> > Modules before loading: 
> > 
> > root@beaglebone:~# lsmod 
> > Module                  Size  Used by 
> > musb_dsps               8465  0 
> > musb_hdrc              76896  1 musb_dsps 
> > pruss_remoteproc       12702  0 
> > ti_am335x_adc           4766  0 
> > kfifo_buf               1941  1 ti_am335x_adc 
> > industrialio           34965  2 ti_am335x_adc,kfifo_buf 
> > musb_am335x             1075  0 
> > uio_pdrv_genirq         2824  0 
> > uio                     7008  1 uio_pdrv_genirq 
> > usb_f_mass_storage     34731  0 
> > usb_f_rndis            17807  0 
> > u_ether                 9436  1 usb_f_rndis 
> > libcomposite           38883  2 usb_f_rndis,usb_f_mass_storage 
> > 
> > And after loading: 
> > 
> > root@beaglebone:/opt/scripts# lsmod 
> > Module                  Size  Used by 
> > usb_f_acm               5695  1 
> > u_serial                9655  1 usb_f_acm 
> > usb_f_ecm               7901  1 
> > g_multi                 3226  0 
> > musb_dsps               8465  0 
> > musb_hdrc              76896  1 musb_dsps 
> > pruss_remoteproc       12702  0 
> > ti_am335x_adc           4766  0 
> > kfifo_buf               1941  1 ti_am335x_adc 
> > industrialio           34965  2 ti_am335x_adc,kfifo_buf 
> > musb_am335x             1075  0 
> > uio_pdrv_genirq         2824  0 
> > uio                     7008  1 uio_pdrv_genirq 
> > usb_f_mass_storage     34731  2 g_multi 
> > usb_f_rndis            17807  2 g_multi 
> > u_ether                 9436  3 usb_f_ecm,usb_f_rndis,g_multi 
> > libcomposite           38883  5 
> > usb_f_acm,usb_f_ecm,usb_f_rndis,g_multi,usb_f_mass_storage 
> > 
> > Any idea why this is happening ? 
>
> Yeap, you have a race condition between: 
>
> musb_hdrc & g_multi 
>
> The easy fix is to build-in musb_hdrc. 
>
> Otherwise verify musb_hdrc has been loaded before you modprobe g_multi 
>
> Regards, 
>
> -- 
> Robert Nelson 
> https://rcn-ee.com/ 
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to