I am working on mini router project and would like to automate USB Hotplug events when device is plugged in routed.
Kernel version used is 2.6.30 and its configured with CONFIG_HOTPLUG.
I googled and also scripted hotplug scripts but not getting events on holplug. Can anybody glimpse in to solution.
Make sure you have your hotplug script path in /proc/sys/kernel/hotplug file:
echo /path/to/hotplug/script > /proc/sys/kernel/hotplug
The default path is /sbin/hotplug.
If you are using bash script for debbuging hotplug like this
#!/bin/bash
env >> /your/log/file
make sure you have specified an absolute path of /your/log/file and the script is executable (just run it by hand and see if it works).
Moreover, if udev is installed on your device, try to capture uevents with udev and see if they are generated by kernel:
udevadm monitor
Related
I want to run linux on qemu to test some system design, I use default config for x86_64, I found that I must append "console=ttyS0" to boot arguments so that I can get kernel message, without the ttyS0 I can't get any output.
So I want to check qemu's device tree, another strange thing is that I found there is no device-tree directory under /sys/fireware.
I want to check following question:
why we need "console=ttyS0" to get output ?
doesn't x86 use device-tree during booting ?
I'm getting started with imx6 processors and the procedure involved to bring up the board is to flash u-boot kernel dtb and rootfs which is taken care of by mfg tools provided by nxp.
For creating a rootfs partition the command run is
mkfs.ext3 -F -E nodiscard /dev/mmcblk1p2
and for untaring the rootfs into this partition it is.
pipe tar -jxv -C /mnt/mmcblk1p2
I'd like to know the working of this, which kernel driver is being called for executing these commands?
My kernel version is 4.9.88.
I did find a few driver files related to mmc in the path
/drivers/mmc/core
but there is nothing related to filesystem reading or writing here.
Can anyone explain which driver files are used to create filesystems?
Creating the filesystem is done by the userspace program mke2fs (of which mkfs.ext3 is an alias) which is part of the e2fsprogs package. The kernel and drivers have no way of creating filesystems. Therefore, only the block driver for accessing the MMC device is involved, but no file system driver.
I'm using appcelerator studio version 4.6.0.201605201934
I'm using a nexus 6P, and windows 10
The phone has debugging enabled, and has MTP mode selected. File-Explorer detects the phone each time it is plugged in and tries to download photos from it.
I have put the google USB folder in the android/sdk/extras/google/usb_driver folder
I can see my device on the command prompt by going to the android/sdk folder
adb devices -l
HOWEVER when i go to appcelerator studio, it does not find the phone - the "run configurations" has an empty list of phones to choose from, and running it leads to it informing me that there is no device connected.
What am I doing wrong?
Have you tried to run the kill-server, and devices commands with the adb path?
In my case:
bash-3.2$ /Applications/Android/android-sdk-macosx/platform-tools/adb kill-server
bash-3.2$ /Applications/Android/android-sdk-macosx/platform-tools/adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
If this still doesn't solve your problem, try to add the Vendor ID of the device to the adb_usb.ini file, usually placed:
Windows: C:\Users\YourUser\.android
Mac OS: ~/.android
You can find the Vendor ID at the hardware info on Mac OS here: /Applications/Utilities/System Information
There is also a list of Vendor IDs at the android documentation: https://developer.android.com/studio/run/device.html
Your file will look, like this:
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x18d1
I have been using Titanium for some time and I also have the same issue regardless of what device or USB port I use. I even have the issue with simulators.
So I do the following instead:
# Install the application (replacing the existing one if it exists)
adb install -r build/android/bin/YOURAPP.apk
# Run the application (you could also just open the application on your phone)
adb shell am start -n com.package.name/com.package.name.ActivityName
# Show logs
adb logcat "TiAPI:*" "*:S"
The adb tool can be found in windows 10 at this path
/Users/username/AppData/Local/Android/sdk/platform-tools/adb.exe
The activity name can be found in the build/android/AndroidManifest.xml file.
It's usually: YourAppNameActivity
More information about logcat can be found here:
https://logmatic.io/blog/a-how-to-guide-to-debugging-with-android-logcat/
https://developer.android.com/studio/command-line/logcat.html
I'm running a small test program on an embedded Linux target (a Freescale i.MX25), which I'd like to debug using GDB. I connect to the system using an FTDI USB-RS232 cable through am Ubuntu VM. GDBserver is installed on the target. I do not have Ethernet or USB support on the target, so I'm trying to use GDB over serial.
When I log into the target using Minicom, I get:
login[1691]: root login on 'ttymxc0'
which I presume means that the console is using ttymxc0. Then, I try to start GDBserver listening for connections from the VM to the test program, residing in /home:
$ cd /home
$ gdbserver /dev/ttymxc0 test
which gives the output (repeatedly):
Remote debugging using /dev/ttymxc0
readchar: Socket operation on non-socket
Remote side has terminated connection. GDBserver will reopen the connection
Is this an error in the way I'm trying to use GDBserver, or something else? Is there another way to debug the program?
You can not use ttymxc0 for two things at the same time (serial console and serial gdb). Disable the getty on that serial line and replace it by the gdbserver.
I am trying to redirect the Qt output to /dev/fb2 which is mapped to LVDS display. I am not able to do.Primary display is /dev/fb0 which is mapped to HDMI display. I am using freescale IMX6 saberautoboard.I have tried using the following command
./qtapp -qws -display Linux:/dev/fb2. But I am getting following error.
Linux: driver not found Aborted
Please help me regarding this.
Regards,
Shivaraj
extract from : Qt embedded displaymanagement
Qt for Embedded Linux provides drivers for the Linux framebuffer, the virtual framebuffer, transformed screens, VNC servers and multi screens. Run the configure script to list the available drivers:
./configure -help
In the default Qt configuration, only an unaccelerated Linux framebuffer driver (/dev/fb0) is enabled. The various drivers can be enabled and disabled using the configure script. For example:
./configure -qt-gfx-transformed
Check if you can enable /dev/fbX here
Thank you for the guidance. But with the below command I see the output of Qt application is getting redirected to /dev/fb2 which is mapped to secondary device. Command is as follows ./qtapplication -qws -display Linuxfb:/dev/fb2:enable=1