[yocto] [genericx86-jethro] core-image-sato HDDIMG 'install' - no hard drive selected - /etc/fstab no such file or directory

Simon Bolek simon.bolek at googlemail.com
Wed Jul 13 23:32:25 PDT 2016


On Wed, Jul 13, 2016 at 4:56 PM, Khem Raj <raj.khem at gmail.com> wrote:

> On Wed, Jul 13, 2016 at 4:57 AM, Simon Bolek <simon.bolek at googlemail.com>
> wrote:
> > Hi Raj,
> >
> > So i tried to do manually, what init script does and udev definitely does
> > not recognize the SSD drive.
> > I ran
> >  /lib/udev/udevd --daemon --debug > udev.debug 2>&1 &
> > from the cli and there is no trace of recognizing the SSD. Only the
> > /dev/sda, which is the USB stick I am running the installation from.
> >
> > I used 'meld' to compare the /initrd from current jethro image and
> previous
> > working fido image.
> > They are almost the same:
> > - in jethro /lib/modules... file structure is missing with:
> > modules.alias
> > modules.alias.bin
> > modules.builtin.bin
> > modules.dep
> > modules.dep.bin
> > modules.devname
> > modules.softdep
> > modules.symbols
> > modules.symbols.bin
>
> this means depmod did not run during initramfs image creation
>
How can I make this happen during bitbake, so i have those files in the
HDDIMG?


> >
> > - there are slight differences between
> > /etc/init.d/udev
> > /etc/udev/scripts/mount.sh
> > , but I cannot tell, if this is the reason.
>
> what are the differences ?
>

Sorry for this patch-like copy/paste, but this was the simplest way of
presenting the changes.
Do you see something important here, that might cause the SDD not beeing
recognized?

--- /home/simon/Development/Yocto-Project/initrd-ok/etc/init.d/udev
+++ /home/simon/Development/Yocto-Project/initrd-jethro/etc/init.d/udev
@@ -14,20 +14,27 @@
 [ -d /sys/class ] || exit 1
 [ -r /proc/mounts ] || exit 1
 [ -x /lib/udev/udevd ] || exit 1
+SYSCONF_CACHED="/etc/udev/cache.data"
+SYSCONF_TMP="/dev/shm/udev.cache"
+DEVCACHE_REGEN="/dev/shm/udev-regen" # create to request cache regen
+
+# A list of files which are used as a criteria to judge whether the udev
cache could be reused.
+CMP_FILE_LIST="/proc/version /proc/cmdline /proc/devices"
+[ -f /proc/atags ] && CMP_FILE_LIST="$CMP_FILE_LIST /proc/atags"
+
+# List of files whose metadata (size/mtime/name) will be included in cached
+# system state.
+META_FILE_LIST="lib/udev/rules.d/* etc/udev/rules.d/*"
+
+# Command to compute system configuration.
+sysconf_cmd () {
+    cat -- $CMP_FILE_LIST
+    stat -c '%s %Y %n' -- $META_FILE_LIST | awk -F/ '{print $1 " " $NF;}'
+}
+
 [ -f /etc/default/udev-cache ] && . /etc/default/udev-cache
 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
 [ -f /etc/default/rcS ] && . /etc/default/rcS
-
-readfiles () {
-   READDATA=""
-   for filename in $@; do
-       if [ -r $filename ]; then
-           while read line; do
-               READDATA="$READDATA$line"
-           done < $filename
-       fi
-   done
-}

 kill_udevd () {
     pid=`pidof -x udevd`
@@ -57,38 +64,35 @@
     # the automount rule for udev needs /tmp directory available, as /tmp
is a symlink
     # to /var/tmp which in turn is a symlink to /var/volatile/tmp, we need
to make sure
     # /var/volatile/tmp directory to be available.
-    mkdir -p /var/volatile/tmp
+    mkdir -m 1777 -p /var/volatile/tmp

     # Cache handling.
-    # A list of files which are used as a criteria to judge whether the
udev cache could be reused.
-    CMP_FILE_LIST="/proc/version /proc/cmdline /proc/devices /proc/atags"
     if [ "$DEVCACHE" != "" ]; then
             if [ -e $DEVCACHE ]; then
-            readfiles $CMP_FILE_LIST
-            NEWDATA="$READDATA"
-            readfiles /etc/udev/cache.data
-            OLDDATA="$READDATA"
-            if [ "$OLDDATA" = "$NEWDATA" ]; then
-                            (cd /; tar xf $DEVCACHE > /dev/null 2>&1)
+            sysconf_cmd > "$SYSCONF_TMP"
+            if cmp $SYSCONF_CACHED $SYSCONF_TMP >/dev/null; then
+                            tar xmf $DEVCACHE -C / -m
                             not_first_boot=1
                             [ "$VERBOSE" != "no" ] && echo "udev: using
cache file $DEVCACHE"
-                            [ -e /dev/shm/udev.cache ] && rm -f
/dev/shm/udev.cache
+                            [ -e $SYSCONF_TMP ] && rm -f "$SYSCONF_TMP"
+                            [ -e "$DEVCACHE_REGEN" ] && rm -f
"$DEVCACHE_REGEN"
                     else
                 # Output detailed reason why the cached /dev is not used
-                if [ "$VERBOSE" != "no" ]; then
-                    echo "udev: udev cache not used"
-                    echo "udev: we use $CMP_FILE_LIST as criteria to judge
whether the cache /dev could be resued"
-                    echo "udev: olddata: $OLDDATA"
-                    echo "udev: newdata: $NEWDATA"
-                fi
-                echo "$NEWDATA" > /dev/shm/udev.cache
+                cat <<EOF
+udev: Not using udev cache because of changes detected in the following
files:
+udev:     $CMP_FILE_LIST
+udev:     $META_FILE_LIST
+udev: The udev cache will be regenerated. To identify the detected changes,
+udev: compare the cached sysconf at   $SYSCONF_CACHED
+udev: against the current sysconf at  $SYSCONF_TMP
+EOF
+                touch "$DEVCACHE_REGEN"
                     fi
         else
             if [ "$ROOTFS_READ_ONLY" != "yes" ]; then
                 # If rootfs is not read-only, it's possible that a new
udev cache would be generated;
                 # otherwise, we do not bother to read files.
-                readfiles $CMP_FILE_LIST
-                echo "$READDATA" > /dev/shm/udev.cache
+                touch "$DEVCACHE_REGEN"
             fi
             fi
     fi
@@ -97,7 +101,7 @@
     kill_udevd > "/dev/null" 2>&1

     # trigger the sorted events
-    echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
+    [ -e /proc/sys/kernel/hotplug ] && echo -e '\000'
>/proc/sys/kernel/hotplug
     /lib/udev/udevd -d

     udevadm control --env=STARTUP=1



> >
> > Unfortunately I did not dig inside binary /lib/udev/udevd.
> >
> > So do you have any other ideas, what might be the reason for not
> recognizing
> > the SSD? Maybe there are some additional recipes needed from jethro on?
> >
> >
> > thanks & kind regards
> > Simon :-)
> >
> > mit freundlichem Gruss / kind regards / pozdrawiam
> > Simon P. Bolek
> > ------------------------------------------------------
> > Dipl. Inf. Simon P. Bolek
> > SAP Integration Architect
> > Business Mobile and IVI Solutions
> > mailto: simon.bolek at arcom-ivi.de
> > http://www.arcom-ivi.de/
> > XING: https://www.xing.com/profile/SimonP_Bolek
> >
> > On Wed, Jul 13, 2016 at 9:03 AM, Simon Bolek <simon.bolek at googlemail.com
> >
> > wrote:
> >>
> >> Thank you,
> >>
> >> I just guess, that it is the following function in init script to put
> the
> >> echos to? Is it?
> >>
> >> udev_daemon() {
> >>     OPTIONS="/sbin/udev/udevd /sbin/udevd /lib/udev/udevd
> >> /lib/systemd/systemd-udevd"
> >>
> >>     for o in $OPTIONS; do
> >>         if [ -x "$o" ]; then
> >>             echo $o
> >>             return 0
> >>         fi
> >>     done
> >>
> >>     return 1
> >> }
> >>
> >>
> >> cheers
> >> Simon:-)
> >>
> >> Viele Grüsse
> >> Simon Bolek :-)
> >>
> >> mit freundlichem Gruss / kind regards / pozdrawiam
> >> Simon P. Bolek
> >> ------------------------------------------------------
> >> Dipl. Inf. Simon P. Bolek
> >> SAP Integration Architect
> >> Business Mobile and IVI Solutions
> >> mailto: simon.bolek at arcom-ivi.de
> >> http://www.arcom-ivi.de/
> >> XING: https://www.xing.com/profile/SimonP_Bolek
> >>
> >> On Wed, Jul 13, 2016 at 8:36 AM, Khem Raj <raj.khem at gmail.com> wrote:
> >>>
> >>> On Tue, Jul 12, 2016 at 11:28 PM, Simon Bolek
> >>> <simon.bolek at googlemail.com> wrote:
> >>> > Thank you Raj,
> >>> >
> >>> > Is there a standard way to activate these initramfs logs, or do I
> have
> >>> > to
> >>> > implement it myself somewhere?
> >>>
> >>> you have to add printf etc. yourself into the init script in initramfs
> >>> image
> >>>
> >>> >
> >>> > thank you and kind regards
> >>> > Simon :-)
> >>> >
> >>> > Viele Grüsse
> >>> > Simon Bolek :-)
> >>> >
> >>> > mit freundlichem Gruss / kind regards / pozdrawiam
> >>> > Simon P. Bolek
> >>> > ------------------------------------------------------
> >>> > Dipl. Inf. Simon P. Bolek
> >>> > SAP Integration Architect
> >>> > Business Mobile and IVI Solutions
> >>> > mailto: simon.bolek at arcom-ivi.de
> >>> > http://www.arcom-ivi.de/
> >>> > XING: https://www.xing.com/profile/SimonP_Bolek
> >>> >
> >>> > On Wed, Jul 13, 2016 at 1:36 AM, Khem Raj <raj.khem at gmail.com>
> wrote:
> >>> >>
> >>> >> On Tue, Jul 12, 2016 at 3:45 AM, Simon Bolek
> >>> >> <simon.bolek at googlemail.com>
> >>> >> wrote:
> >>> >> > Hello everyone!
> >>> >> >
> >>> >> > I am trying to install genericx86 core-image-sato (jethro) HDDIMG
> to
> >>> >> > an
> >>> >> > atom-pc.
> >>> >> > For this 2GB USB stick is used.
> >>> >> > When choosing 'install' option from boot menu I get the message:
> >>> >> >
> >>> >> > "Searching for hard drives...
> >>> >> > No hard drive selected. Installation aborted."
> >>> >> >
> >>> >> > Installatiion stops and i get the console.
> >>> >> > When I try to run fsck, it says: can't read '/etc/fstab': No such
> >>> >> > file
> >>> >> > or
> >>> >> > directory
> >>> >> >
> >>> >> > fdisk -l  shows only the partitions of USB stick.
> >>> >> >
> >>> >> > After I choose 'boot' option to boot into live image, SDD drive is
> >>> >> > under
> >>> >> > /dev/sdb and USB installation stick under /dev/sda,
> >>> >> >
> >>> >> > What recipe/package is my installation missing? The SSD hard drive
> >>> >> > is
> >>> >> > not
> >>> >> > recognized for some reason. With previous yocto releases this
> >>> >> > package
> >>> >> > list
> >>> >> > DID work fine.
> >>> >> > So there is something missing in the background.
> >>> >> > Do you have any idea what this might be?
> >>> >>
> >>> >> udev should have run and found your hdd. So it seems its not finding
> >>> >> it when running from initramfs. Can you try to add logs to initramfs
> >>> >> and see what udev is doing ?
> >>> >>
> >>> >> >
> >>> >> > Below is my package list from local.conf.
> >>> >> >
> >>> >> > thank you and kind regards
> >>> >> > Simon :-)
> >>> >> >
> >>> >> > EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh"
> >>> >> > IMAGE_INSTALL_append = " make \
> >>> >> >      initscripts \
> >>> >> >      grub \
> >>> >> >      initramfs-boot \
> >>> >> >      syslinux \
> >>> >> >      initramfs-live-install \
> >>> >> >      initramfs-live-install-efi \
> >>> >> >      initramfs-live-boot \
> >>> >> >      xinit \
> >>> >> >      xwininfo \
> >>> >> >      openssh-sftp \
> >>> >> >      openssh-sftp-server \
> >>> >> >      qtbase-plugins \
> >>> >> >      qtconnectivity \
> >>> >> >      qtdeclarative \
> >>> >> >      qtdeclarative-plugins \
> >>> >> >      qtdeclarative-tools \
> >>> >> >      qtdeclarative-qmlplugins \
> >>> >> >      qtenginio \
> >>> >> >      qtlocation \
> >>> >> >      qtmultimedia \
> >>> >> >      qtmultimedia-plugins \
> >>> >> >      qtmultimedia-qmlplugins \
> >>> >> >      qtsystems \
> >>> >> > "
> >>> >> >
> >>> >> > Viele Grüsse
> >>> >> > Simon Bolek :-)
> >>> >> >
> >>> >> > mit freundlichem Gruss / kind regards / pozdrawiam
> >>> >> > Simon P. Bolek
> >>> >> > ------------------------------------------------------
> >>> >> > Dipl. Inf. Simon P. Bolek
> >>> >> > SAP Integration Architect
> >>> >> > Business Mobile and IVI Solutions
> >>> >> > mailto: simon.bolek at arcom-ivi.de
> >>> >> > http://www.arcom-ivi.de/
> >>> >> > XING: https://www.xing.com/profile/SimonP_Bolek
> >>> >> >
> >>> >> > --
> >>> >> > _______________________________________________
> >>> >> > yocto mailing list
> >>> >> > yocto at yoctoproject.org
> >>> >> > https://lists.yoctoproject.org/listinfo/yocto
> >>> >> >
> >>> >
> >>> >
> >>
> >>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160714/2a999b57/attachment.html>


More information about the yocto mailing list