Related
I would like to use DBus in a container with docker in root-less mode.
I use Ubuntu 22.10 :
host$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.10
Release: 22.10
Codename: kinetic
and docker root-less :
host$ docker info
Client:
Context: rootless
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
compose: Docker Compose (Docker Inc., v2.12.2)
scan: Docker Scan (Docker Inc., v0.21.0)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 3
Server Version: 20.10.21
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: false
userxattr: true
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d986545181c905378b0f90faa9c5eae3cbfa3755
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
seccomp
Profile: default
rootless
cgroupns
Kernel Version: 5.19.0-26-generic
Operating System: Ubuntu 22.10
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 31.23GiB
Name: ****************
ID: LAEG:NBQE:RME5:OPHR:TT4C:PHA3:25FE:7DPW:46PD:E2VI:6FB6:HQ2P
Docker Root Dir: /home/*******/.local/share/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
I tried to create a container with the dbus socket mounted in it :
docker run -it --rm -v /var/run/dbus:/var/run/dbus ubuntu:latest bash
In my case I need to launch the container with a user different from root. Then I created a test user with the uid 1000:
root#163974703e4c:/# adduser test
Adding user `test' ...
Adding new group `test' (1000) ...
Adding new user `test' (1000) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
I switch to this new user :
root#163974703e4c:/# su test
test#163974703e4c:/$ id
uid=1000(test) gid=1000(test) groups=1000(test)
As I have a user other than root, he has on my host a subuid. My /etc/subuid:
user:100000:65536
Therefore I put an acl on my dbus socket to allow my sub user to use the socket:
host$ sudo setfacl -R -m u:100999:rwx /run/dbus/system_bus_socket
So I have the DBus socket with an access to this socket in the container:
test#163974703e4c:/$ ls -lan /run/dbus/system_bus_socket
srw-rwxrw-+ 1 65534 65534 0 Dec 9 17:46 /run/dbus/system_bus_socket
test#163974703e4c:/$ getfacl /run/dbus/system_bus_socket
getfacl: Removing leading '/' from absolute path names
# file: run/dbus/system_bus_socket
# owner: nobody
# group: nogroup
user::rw-
user:test:rwx
group::rw-
mask::rwx
other::rw-
I test the command dbus-monitor --system but I have this output :
$ dbus-monitor --system
Failed to open connection to system bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Can you help me please?
I tried to launch my container in privileged mode, with --add-cap ALL, but I still get this error message.
I tried to use strace to show all system call nothing more information :
prctl(PR_CAPBSET_READ, CAP_MAC_OVERRIDE) = 0
prctl(PR_CAPBSET_READ, 0x30 /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, CAP_CHECKPOINT_RESTORE) = 0
prctl(PR_CAPBSET_READ, 0x2c /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x2a /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x29 /* CAP_??? */) = -1 EINVAL (Invalid argument)
getresuid([1000], [1000], [1000]) = 0
getresgid([1000], [1000], [1000]) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/dbus/system_bus_socket"}, 29) = 0
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
geteuid() = 1000
getsockname(3, {sa_family=AF_UNIX}, [128 => 2]) = 0
poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])
sendto(3, "\0", 1, MSG_NOSIGNAL, NULL, 0) = 1
sendto(3, "AUTH EXTERNAL 31303030\r\n", 24, MSG_NOSIGNAL, NULL, 0) = 24
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
read(3, "REJECTED EXTERNAL\r\n", 2048) = 19
close(3) = 0
write(2, "Failed to open connection to sys"..., 252Failed to open connection to system bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
) = 252
exit_group(1) = ?
+++ exited with 1 +++
I want to get the same output as on my host in my container :
dbus-monitor --system
dbus-monitor: unable to enable new-style monitoring: org.freedesktop.DBus.Error.AccessDenied: "Rejected send message, 1 matched rules; type="method_call", sender=":1.544" (uid=1000 pid=32723 comm="dbus-monitor --system" label="unconfined") interface="org.freedesktop.DBus.Monitoring" member="BecomeMonitor" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)". Falling back to eavesdropping.
signal time=1670624207.443897 sender=org.freedesktop.DBus -> destination=:1.544 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.544"
signal time=1670624214.344658 sender=:1.12 -> destination=(null destination) serial=47 path=/org/freedesktop/UDisks2/drives/ST2000DM008_2FR102_ZFL3HVF7; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.freedesktop.UDisks2.Drive.Ata"
array [
dict entry(
string "SmartUpdated"
variant uint64 1670624214
)
]
array [
]
The issue is the EXTERNAL authentication used by libdbus which leads t0 discrepancy crossing user-namespace boundaries. Described here https://bugreports.qt.io/browse/QTBUG-108408.
If you can afford to patch libdbus in your project or at least in your containers then you should be good to go by this patch.
From 0d18f455194924ffb100bc980239082187b48301 Mon Sep 1
7 00:00:00 2001
From: =?UTF-8?q?=F0=9F=98=8
Date: Sun, 13 Nov 2022 20:08:02 +0100
Subject: [PATCH] fix: Do not send UID by External Auth
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
sending the UID per EXTERNAL authentication crossing user-namespace would cause
mismatch with out-of-band credentials acquired over UDS
An empty "AUTH EXTERNAL" is still a valid implementation of EXTERNAL authentication
Upstream-ticket: https://gitlab.freedesktop.org/dbus/dbus/-/issues/195
---
dbus/dbus-auth.c | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/dbus/dbus-auth.c b/dbus/dbus-auth.c
index d4faa737..1d8f3b53 100644
--- a/dbus/dbus-auth.c
+++ b/dbus/dbus-auth.c
## -1231,31 +1231,22 ## static dbus_bool_t
handle_client_initial_response_external_mech (DBusAuth *auth,
DBusString *response)
{
- /* We always append our UID as an initial response, so the server
- * doesn't have to send back an empty challenge to check whether we
- * want to specify an identity. i.e. this avoids a round trip that
- * the spec for the EXTERNAL mechanism otherwise requires.
- */
- DBusString plaintext;
-
- if (!_dbus_string_init (&plaintext))
+ /* We don't send the UID as crossing user-namespace would cause
+ mismatch with out-of-band credentials acquired over UDS
+ it is still a valid implementation of EXTERNAL authentication
+ check related tickets in sd-bus
+ https://github.com/systemd/systemd/commit/1ed4723d38cd0d1423c8fe650f90fa86007ddf55
+ and gdbus
+ https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2832
+
+ Upstream ticket for proper fix: https://gitlab.freedesktop.org/dbus/dbus/-/issues/195
+ */
+ if (!_dbus_string_append (response,
+ "\r\nDATA"))
+ {
return FALSE;
-
- if (!_dbus_append_user_from_current_process (&plaintext))
- goto failed;
-
- if (!_dbus_string_hex_encode (&plaintext, 0,
- response,
- _dbus_string_get_length (response)))
- goto failed;
-
- _dbus_string_free (&plaintext);
-
+ }
return TRUE;
-
- failed:
- _dbus_string_free (&plaintext);
- return FALSE;
}
static dbus_bool_t
--
2.38.1
Hello I have used https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-oracle-linux-6-and-7 to create a oracle DB in oracle virtualbox and I am trying to connect to it using sql developer on the same desktop. I have disabled the firewall already. Any help would be greatly appreciated.
Here is my tnsnames.ora and listener.ora files
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0.1/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_CDB1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol7-122.localdomain)(PORT = 1521))
CDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol7-122.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb1)
)
)
[oracle#ol7-122 bin]$ cat /u01/app/oracle/product/19.3.0.1/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0.1/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol7-122.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
Listener Status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 20-APR-2021 11:15:43
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ol7-122.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 19-APR-2021 13:17:15
Uptime 0 days 21 hr. 58 min. 27 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.3.0.1/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/ol7-122/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ol7-122.localdomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ol7-122.localdomain)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/cdb1/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "bfcef1c73c025a39e0536a38a8c0e70d" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "cdb1" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "cdb1XDB" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
netstat of port 1521 in oracle VM
tcp 0 0 192.168.56.106:27356 192.168.56.106:1521 ESTABLISHED
tcp6 0 0 :::1521 :::* LISTEN
tcp6 0 0 192.168.56.106:1521 192.168.56.106:27356 ESTABLISHED
unix 2 [ ACC ] STREAM LISTENING 51182 /var/tmp/.oracle/sEXTPROC1521
telnet from windows to oracle VM over port 1521
Connecting To 192.168.56.106...Could not open connection to the host, on port 1521: Connect failed
Description:
After about 1 week of debugging to figure out the cause of the application closing itself without any error message, I discovered that the main cause of crashing is from the node-ios-device library.
Everything works normally, but after about 1 hour, a crash occurs. What I think is strange is that a crash occurs even iosDevice.watch() was not called. Or just by importing the node-ios-devices library can a crash occur.
Sometimes, I got this message after crashing as well.
[21194:0607/225605.295914:FATAL:message_pump_kqueue.cc(387)] : Bad file descriptor (9)
It still works on my NodeJS project.
Reproduction:
https://github.com/zcmgyu/crash-electron-node-ios-device/blob/master/main.js#L22-L28
const handle = iosDevice.watch();
handle.on('change', devices => {
console.log('Connected devices:', devices);
});
handle.on('error', console.error);
iosDevice.on('log', msg => console.log(msg));
This is logs output from iosDevice.on('log')
$ electron .
Creating device list with 1 devices
Connected devices: [
{
udid: 'XXXX',
interfaces: [ 'Wi-Fi' ],
name: 'ZC X',
buildVersion: '17F75',
cpuArchitecture: 'arm64',
deviceClass: 'iPhone',
deviceColor: 'Black',
hardwareModel: 'D22AP',
modelNumber: 'MQAY2',
productType: 'iPhone10,3',
productVersion: '13.5',
serialNumber: 'FK1VVTGLJCLL',
trustedHostAttached: false
}
]
Adding listener
Creating device list with 1 devices
Resetting timer due to new device notification
Device XXXX disconnected via Wi-Fi
Connected devices: []
Creating device list with 0 devices
Dispatching device changes to 1 listener (thread 2978043419396287625)
Resetting timer due to new device notification
Device XXXX connected via Wi-Fi
Getting device info for XXXX
Connecting to device: XXXX
Pairing device: XXXX
Validating device pairing
Starting session: XXXX
Stopping session: XXXX
Disconnecting from device: XXXX
Connected devices: [
{
udid: 'XXXX',
interfaces: [ 'Wi-Fi' ],
name: 'ZC X',
buildVersion: '17F75',
cpuArchitecture: 'arm64',
deviceClass: 'iPhone',
deviceColor: 'Black',
hardwareModel: 'D22AP',
modelNumber: 'MQAY2',
productType: 'iPhone10,3',
productVersion: '13.5',
serialNumber: 'FK1VVTGLJCLL',
trustedHostAttached: false
}
]
Creating device list with 1 devices
Dispatching device changes to 1 listener (thread 2978043419396287625)
Resetting timer due to new device notification
Device XXXX disconnected via Wi-Fi
Connected devices: []
✨ Done in 225.28s.
macOS: 10.15.4
node-ios-device: 2.0.2
electron: 9.0.2
node: 14.3.0
There is no alternative library so I could fulfill my project without this one. Please save my day.
I wanted to write a simple PCI express driver for Xilinx FPGA. But I am not able to request memory region for PCI.
Question is: How to claim that I/O memory area for custom driver. I want to write 3. byte of that area using driver.
Below are the details. What am I missing ? Thanks
1-) I am getting this error:
[ 4.345350] Unable to handle kernel paging request for data at address 0x00000005
[ 4.353978] Faulting instruction address: 0x80000000002c9370
[ 4.358337] Oops: Kernel access of bad area, sig: 11 [#1]
[ 4.362426] BE SMP NR_CPUS=24 CoreNet Generic
[ 4.365477] Modules linked in: fpgapcie(O+) ucc_uart
[ 4.369139] CPU: 0 PID: 1999 Comm: udevd Tainted: G O 4.19.26+gc0c2141 #1
[ 4.375924] NIP: 80000000002c9370 LR: 80000000002c9350 CTR: c00000000053acfc
[ 4.381753] REGS: c0000001ee2bb1c0 TRAP: 0300 Tainted: G O (4.19.26+gc0c2141)
[ 4.389146] MSR: 000000008002b000 <CE,EE,FP,ME> CR: 22228242 XER: 20000000
[ 4.394982] DEAR: 0000000000000005 ESR: 0000000000800000 IRQMASK: 0
GPR00: 80000000002c9350 c0000001ee2bb440 80000000002d1f00 000000000000001a
GPR04: 0000000000000001 000000000000022d c000000000f30548 c000000001013000
GPR08: 00000001fec37000 0000000000000003 0000000000000000 0000000000000020
GPR12: 0000000028228444 c000000001013000 0000000000020000 000000013c323ac8
GPR16: 000000013c323ae0 80000000002cc000 c000000000a194b0 c0000001f0eaa1c0
GPR20: 00000000006000c0 c000000000ed9da0 0000000000000000 0000000000000100
GPR24: 000000000000001c 000000000f700000 c0000001f3034880 0000000000000000
GPR28: c0000001f337b800 00000000000000f7 c0000001f337b8a0 0000000000000000
2-) Code piece in PCI probe function:
static int pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
{
int ret, minor;
struct cdev *cdev;
dev_t devno;
unsigned long pci_io_addr = 0;
/* add this pci device in pci_cdev */
if ((minor = pci_cdev_add(pci_cdev, MAX_DEVICE, dev)) < 0)
goto error;
/* compute major/minor number */
devno = MKDEV(major, minor);
/* allocate struct cdev */
cdev = cdev_alloc();
/* initialise struct cde
cdev_init(cdev, &pci_ops);
cdev->owner = THIS_MODULE;
/* register cdev */
ret = cdev_add(cdev, devno, 1);
if (ret < 0) {
dev_err(&(dev->dev), "Can't register character device\n");
goto error;
}
pci_cdev[minor].cdev = cdev;
dev_info(&(dev->dev), "%s The major device number is %d (%d).\n",
"Registeration is a success", MAJOR(devno), MINOR(devno));
dev_info(&(dev->dev), "If you want to talk to the device driver,\n");
dev_info(&(dev->dev), "you'll have to create a device file. \n");
dev_info(&(dev->dev), "We suggest you use:\n");
dev_info(&(dev->dev), "mknod %s c %d %d\n", DEVICE_NAME, MAJOR(devno), MINOR(devno));
dev_info(&(dev->dev), "The device file name is important, because\n");
dev_info(&(dev->dev), "the ioctl program assumes that's the\n");
dev_info(&(dev->dev), "file you'll use.\n");
/* enable the device */
pci_enable_device(dev);
/* 'alloc' IO to talk with the card */
if (pci_request_region(dev, BAR_IO, "IO-pci") == 0) {
printk(KERN_ALERT "The memory you requested from fpgapcie is already reserved by CORE pci driver.");
}
check that BAR_IO is *really* IO region
if ((pci_resource_flags(dev, BAR_IO) & IORESOURCE_IO) != IORESOURCE_IO) {
dev_err(&(dev->dev), "BAR2 isn't an IO region\n");
cdev_del(cdev);
goto error;
}
pci_io_addr = pci_resource_start(dev,BAR_IO);
printk(KERN_INFO "PCI start adress: %02X", &pci_io_addr);
outb(pci_io_addr+3, 5);
printk(KERN_INFO "Message from PCI device to user: 5");
return 1;
error:
printk(KERN_INFO "An error occuder while probing pci");
return 0;
}
3-) lspci -v output:
0001:01:00.0 Memory controller: Xilinx Corporation Device 7021
Subsystem: Xilinx Corporation Device 0007
Flags: bus master, fast devsel, latency 0, IRQ 41
Memory at c10000000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 3
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [60] Express Endpoint, MSI 00
Capabilities: [100] Device Serial Number 00-00-00-01-01-00-0a-35
Kernel driver in use: yusufpci
Kernel modules: fpgapcie
4-) full dmesg:
[ 4.285663] Module pci init
[ 4.294787] yusufpci 0001:01:00.0: Registeration is a success The major device number is 247 (0).
[ 4.302367] yusufpci 0001:01:00.0: If you want to talk to the device driver,
[ 4.308116] yusufpci 0001:01:00.0: you'll have to create a device file.
[ 4.313516] yusufpci 0001:01:00.0: We suggest you use:
[ 4.317354] yusufpci 0001:01:00.0: mknod virtual_pci c 247 0
[ 4.321713] yusufpci 0001:01:00.0: The device file name is important, because
[ 4.327553] yusufpci 0001:01:00.0: the ioctl program assumes that's the
[ 4.332866] yusufpci 0001:01:00.0: file you'll use.
[ 4.336459] The memory you requested from fpgapcie is already reserved by CORE pci driver. This is not an error.
[ 4.336463] PCI start adress: EE2BB4B0
[ 4.345350] Unable to handle kernel paging request for data at address 0x00000005
[ 4.353978] Faulting instruction address: 0x80000000002c9370
[ 4.358337] Oops: Kernel access of bad area, sig: 11 [#1]
[ 4.362426] BE SMP NR_CPUS=24 CoreNet Generic
[ 4.365477] Modules linked in: fpgapcie(O+) ucc_uart
[ 4.369139] CPU: 0 PID: 1999 Comm: udevd Tainted: G O 4.19.26+gc0c2141 #1
[ 4.375924] NIP: 80000000002c9370 LR: 80000000002c9350 CTR: c00000000053acfc
[ 4.381753] REGS: c0000001ee2bb1c0 TRAP: 0300 Tainted: G O (4.19.26+gc0c2141)
[ 4.389146] MSR: 000000008002b000 <CE,EE,FP,ME> CR: 22228242 XER: 20000000
[ 4.394982] DEAR: 0000000000000005 ESR: 0000000000800000 IRQMASK: 0
GPR00: 80000000002c9350 c0000001ee2bb440 80000000002d1f00 000000000000001a
GPR04: 0000000000000001 000000000000022d c000000000f30548 c000000001013000
GPR08: 00000001fec37000 0000000000000003 0000000000000000 0000000000000020
GPR12: 0000000028228444 c000000001013000 0000000000020000 000000013c323ac8
GPR16: 000000013c323ae0 80000000002cc000 c000000000a194b0 c0000001f0eaa1c0
GPR20: 00000000006000c0 c000000000ed9da0 0000000000000000 0000000000000100
GPR24: 000000000000001c 000000000f700000 c0000001f3034880 0000000000000000
GPR28: c0000001f337b800 00000000000000f7 c0000001f337b8a0 0000000000000000
[ 4.453632] NIP [80000000002c9370] .pci_probe+0x220/0x2b4 [fpgapcie]
[ 4.458680] LR [80000000002c9350] .pci_probe+0x200/0x2b4 [fpgapcie]
[ 4.463639] Call Trace:
[ 4.464775] [c0000001ee2bb440] [80000000002c9350] .pci_probe+0x200/0x2b4 [fpgapcie] (unreliable)
[ 4.472262] [c0000001ee2bb500] [c0000000004b77c8] .pci_device_probe+0x11c/0x1f4
[ 4.478270] [c0000001ee2bb5a0] [c000000000561ebc] .really_probe+0x26c/0x38c
[ 4.483927] [c0000001ee2bb640] [c0000000005621ac] .driver_probe_device+0x78/0x154
[ 4.490106] [c0000001ee2bb6d0] [c0000000005623d8] .__driver_attach+0x150/0x154
[ 4.496025] [c0000001ee2bb760] [c00000000055f424] .bus_for_each_dev+0x94/0xdc
[ 4.501856] [c0000001ee2bb800] [c0000000005615fc] .driver_attach+0x24/0x38
[ 4.507426] [c0000001ee2bb870] [c000000000560ec8] .bus_add_driver+0x264/0x2a4
[ 4.513258] [c0000001ee2bb910] [c000000000563384] .driver_register+0x88/0x178
[ 4.519089] [c0000001ee2bb990] [c0000000004b5a68] .__pci_register_driver+0x50/0x64
[ 4.525355] [c0000001ee2bba00] [80000000002c9564] .pci_init_module+0xc0/0x444 [fpgapcie]
[ 4.532144] [c0000001ee2bba80] [c0000000000020b4] .do_one_initcall+0x64/0x224
[ 4.537978] [c0000001ee2bbb50] [c0000000000f443c] .do_init_module+0x70/0x260
[ 4.543722] [c0000001ee2bbbf0] [c0000000000f6564] .load_module+0x1e6c/0x2400
[ 4.549467] [c0000001ee2bbd10] [c0000000000f6d28] .__se_sys_finit_module+0xcc/0x100
[ 4.555819] [c0000001ee2bbe30] [c0000000000006b0] system_call+0x60/0x6c
[ 4.561127] Instruction dump:
[ 4.562785] e86a8080 38810070 f9210070 4800041d e8410028 e9210070 3d420000 e94a8088
[ 4.569231] 39290003 5529063e e94a0000 7c0004ac <992a0005> 39200001 3d420000 992d0684
[ 4.575854] ---[ end trace 2d15cff7ba1b3255 ]---
Problem solved. But when I write the third byte of Memory Mapped area, FPGA programmed to answer with lighting its GPIO leds. I tried to write first 15 byte of MMIO but it did not work. The leds did not lighted. But the code stopped giving errors.
I also cannot read the bytes on MMIO space using readb() function. It's
giving
unrecoverable machine check error
Problem solved using this code.
pci_request_regions(dev, "fpgapcie");
pci_io_startaddr = pci_resource_start(dev,BAR_IO);
pci_io_endaddr = pci_resource_end(dev,BAR_IO);
pci_io_size = pci_resource_len(dev,BAR_IO);
printk(KERN_INFO "Region start: %lX, Region end: %lX, Size: % lX",pci_io_startaddr,pci_io_endaddr,pci_io_size);
pci_io_addr = ioremap(pci_io_startaddr, pci_io_endaddr);
printk(KERN_INFO "PCI start adress: %lX", pci_io_addr);
for(i = 0;i<15;i++) /* Write first 15 byte */
{
writeb(2, pci_io_addr+i);
printk(KERN_INFO "%lX, Message from PCI device to user: 2", pci_io_addr+i);
}
and the dmesg output:
fpgapcie: loading out-of-tree module taints kernel.
fpgapcie 0001:01:00.0: Registeration is a success The major device number is 247 (0).
fpgapcie 0001:01:00.0: If you want to talk to the device driver,
fsl-fman-port ffe488000.port fm1-gb0: renamed from eth0
fpgapcie 0001:01:00.0: you'll have to create a device file.
fpgapcie 0001:01:00.0: We suggest you use:
fpgapcie 0001:01:00.0: mknod virtual_pci c 247 0
fpgapcie 0001:01:00.0: The device file name is important, because
fpgapcie 0001:01:00.0: the ioctl program assumes that's the
fpgapcie 0001:01:00.0: file you'll use.
Region start: 210000000, Region end: 2100007FF, Size: 800
PCI start adress: 8000080088900000
8000080088900000, Message from PCI device to user: 2
8000080088900001, Message from PCI device to user: 2
8000080088900002, Message from PCI device to user: 2
8000080088900003, Message from PCI device to user: 2
8000080088900004, Message from PCI device to user: 2
8000080088900005, Message from PCI device to user: 2
8000080088900006, Message from PCI device to user: 2
8000080088900007, Message from PCI device to user: 2
8000080088900008, Message from PCI device to user: 2
8000080088900009, Message from PCI device to user: 2
800008008890000A, Message from PCI device to user: 2
800008008890000B, Message from PCI device to user: 2
800008008890000C, Message from PCI device to user: 2
800008008890000D, Message from PCI device to user: 2
800008008890000E, Message from PCI device to user: 2
I am a noob to building custom linux OSes for embedded boards - so please ignore my ignorance.
I have a board called NanoPi NEO that has custom Debian linux. Now the board comes with a .img file that can be flashed on to an SD card and plugged into the slot and the board boots from the card.
Now I am trying to build my own Custom linux and flash to the SD card. I have been through the forums and manuals and managed to get this far.
Problem
I understand that there are three components to a custom linux build
boot0 - The thing that loads the BootLoader
U-Boot - One of the many BootLoaders. (The project uses this).
Rootfs - The filesystem and everything else.
The board manufacturer's website gave these instructions for building custom os. I followed those instructions and did everything including proper partitioning of the SD card (with free space in front for boot0, boot partition with uImage and Script.bin, and partition for rootfs)
The problem is that the board loads the Kernel on boot but doesn't mount the filesystem and prove a user prompt.
This is the Dmesg output.
HELLO! BOOT0 is starting!
boot0 version : 4.0.0
boot0 commit : 9d0a4ce0ba7756bc0de2e0efe7ec15900a4aa947
fel_flag = 0x00000000
rtc[0] value = 0x00000000
rtc[1] value = 0x00000000
rtc[2] value = 0x00000000
rtc[3] value = 0x00000000
rtc[4] value = 0x00000000
rtc[5] value = 0x00000000
rtc[6] value = 0x00000000
rtc[7] value = 0x00000000
DRAM DRIVE INFO: V1.3
the chip id is 0x00000081
the chip id is 0x00000081
the chip id is 0x00000081
the chip id is 0x00000081
the chip id is 0x00000081
READ DQS LCDL = 00242524
DRAM Type = 3 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)
DRAM CLK = 576 MHz
DRAM zq value: 003b3bfb
DRAM dram para1: 10e20100
DRAM dram para2: 00000001
DRAM workmode1: 000009f4
DRAM SIZE =256 M
odt delay
dram size =256
card boot number = 0
card no is 0
sdcard 0 line count 4
[mmc]: mmc driver ver 2015-04-13 16:07:39
[mmc]: ***Try SD card 0***
[mmc]: SD/MMC Card: 4bit, capacity: 3812MB
[mmc]: vendor: Man 00845446 Snr 0000200b
[mmc]: product: SD[mmc]: revision: 0.0
[mmc]: ***SD/MMC 0 init OK!!!***
sdcard 0 init ok
The size of uboot is 000e4000.
sum=5b02f845
src_sum=5b02f845
Succeed in loading uboot from sdmmc flash.
Ready to disable icache.
Jump to secend Boot.
SUNXI_NORMAL_MODE
[ 0.380]e mode
U-Boot 2011.09-rc1-00000-g9d0a4ce-dirty (Aug 18 2016 - 15:53:02) Allwinner Technology
[ 0.390]version: 1.1.0
[ 0.392]uboot commit : 9d0a4ce0ba7756bc0de2e0efe7ec15900a4aa947
normal mode
[ 0.403]pmbus: ready
not set main pmu id
axp_probe error
gpio value=0x20000
[ 0.441]PMU: pll1 1008 Mhz,PLL6=600 Mhz
AXI=336 Mhz,AHB=200 Mhz, APB1=100 Mhz
sid read already
fel key new mode
run key detect
no key found
no key input
dram_para_set start
dram_para_set end
normal mode
[ 0.472]DRAM: 256 MiB
relocation Offset is: 05af2000
[box standby] read rtc = 0x0
[box_start_os] mag be start_type no use
user_gpio config
user_gpio ok
gic: normal or no secure os mode
workmode = 0
MMC: 0
[ 0.552][mmc]: mmc driver ver 2015-04-13 14:50:00
[ 0.557][mmc]: get sdc_phy_wipe fail.
[ 0.561][mmc]: get sdc0 sdc_erase fail.
[ 0.565][mmc]: get sdc_f_max fail,use default 50000000Hz
[ 0.570][mmc]: get sdc_ex_dly_used fail,use default dly
[ 0.576][mmc]: SUNXI SD/MMC: 0
[ 0.589][mmc]: *Try SD card 0*
[ 0.622][mmc]: CID 0x84544653 0x44000000 0x20 0xb01014f
[ 0.627][mmc]: mmc clk 50000000
[ 0.630][mmc]: SD/MMC Card: 4bit, capacity: 3812MB
[ 0.635][mmc]: boot0 capacity: 0KB,boot1 capacity: 0KB
[ 0.640][mmc]: ***SD/MMC 0 init OK!!!***
[ 0.645][mmc]: erase_grp_size:0x1WrBlk * 0x200 = 0x200 Byte
[ 0.651][mmc]: secure_feature 0x0
[ 0.654][mmc]: secure_removal_type 0x0
[ 0.658]sunxi flash init ok
script config pll_de to 864 Mhz
Not Found clk pll_video1 in script
script config pll_video to 297 Mhz
script config pll_periph0 to 600 Mhz
unable to find regulator vcc-hdmi-18 from [pmu1_regu] or [pmu2_regu]
enable power vcc-hdmi-18, ret=-1
DRV_DISP_Init end
[disk_read_fs] no the partition
error: open tv_vdid.fex, maybe it is not exist
[disk_read_fs] no the partition
error: open disp_rsl.fex, maybe it is not exist
[disk_read_fs] no the partition
error: open disp_rsl.fex, maybe it is not exist
boot_disp.auto_hpd=1
auto hpd check has 100 times!
auto check no any connected, the output_type is 4
[ 2.032]finally, output_type=0x4, output_mode=0x4, screen_id=0x0, disp_para=0x0
try to read logic blk 0 without env partition
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
--------fastboot partitions--------
mbr not exist
base bootcmd=run setargs_mmc boot_normal
bootcmd set setargs_mmc
key 0
cant find rcvy value
cant find fstbt value
no misc partition is found
to be run cmd=run setargs_mmc boot_normal
[ 2.080][mmc]: MMC Device 2 not found
[ 2.084][mmc]: Can not find mmc dev
[ 2.087][mmc]: read first backup failed in fun sdmmc_secure_storage_read line 1854
sunxi_secstorage_read fail
get secure storage map err
check user data form private
the private part isn't exist
WORK_MODE_BOOT
adver not need show
sunxi_bmp_logo_display
[disk_read_fs] no the partition
error: open bootlogo.bmp, maybe it is not exist
sunxi bmp info error : unable to open logo file bootlogo.bmp
[ 2.123]Hit any key to stop autoboot: 0
[ 4.300][mmc]: blkcnt should not be 0
## Booting kernel from Legacy Image at 40007800 ...
Image Name: Linux-3.4.39-h3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4522784 Bytes = 4.3 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
[ 4.603][mmc]: MMC Device 2 not found
[ 4.607][mmc]: mmc not find,so not exit
[ 4.611]
Starting kernel ...
[sun8i_fixup]: From boot, get meminfo:
Start: 0x40000000
Size: 256MB
ion_carveout reserve: 160m#0 256m#0 130m#1 200m#1
ion_reserve_select: ion chipid [0x2c00081!
ion_reserve_common: ion reserve: [0x46000000, 0x50000000]!
[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.39-h3 (azmath#azPC) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) ) #1 SMP PREEMPT Thu Aug 18 15:52:21 IST 2016
[ 0.000000] cma: CMA: reserved 160 MiB at 46000000
[ 0.000000] PERCPU: Embedded 8 pages/cpu #c0c91000 s11840 r8192 d12736 u32768
[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait init=/sbin/init
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] allocated 524288 bytes of page_cgroup
[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[ 0.000000] Memory: 256MB = 256MB total
[ 0.000000] Memory: 84012k/84012k available, 178132k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc089dfd4 (8792 kB)
[ 0.000000] .init : 0xc089e000 - 0xc08eee40 ( 324 kB)
[ 0.000000] .data : 0xc08f0000 - 0xc096a878 ( 491 kB)
[ 0.000000] .bss : 0xc096b02c - 0xc0a3fc88 ( 852 kB)
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Additional per-CPU info printed with stalls.
[ 0.000000] NR_IRQS:544
[ 0.000000] Architected local timer running at 24.00MHz.
[ 0.000000] Switching to timer-based delay loop
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] console [tty0] enabled
[ 0.001029] Calibrating delay loop (skipped), value calculated using timer frequency.. 4800.00 BogoMIPS (lpj=24000000)
[ 0.001097] pid_max: default: 32768 minimum: 301
[ 0.001458] Mount-cache hash table entries: 512
[ 0.002521] Initializing cgroup subsys cpuacct
[ 0.002561] Initializing cgroup subsys memory
[ 0.002631] Initializing cgroup subsys devices
[ 0.002663] Initializing cgroup subsys freezer
[ 0.002692] Initializing cgroup subsys blkio
[ 0.002736] Initializing cgroup subsys perf_event
[ 0.002813] CPU: Testing write buffer coherency: ok
[ 0.002890] ftrace: allocating 24150 entries in 71 pages
[ 0.030315] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.030365] [sunxi_smp_prepare_cpus] enter
[ 0.030417] Setting up static identity map for 0x4061f8e0 - 0x4061f938
[ 0.031457] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.031592] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.031592] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.040210] Brought up 4 CPUs
[ 0.040292] SMP: Total of 4 processors activated (19200.00 BogoMIPS).
[ 0.041034] devtmpfs: initialized
[ 0.043817] wakeup src cnt is : 2.
[ 0.043914] sunxi pm init
[ 0.044064] pinctrl core: initialized pinctrl subsystem
[ 0.054192] NET: Registered protocol family 16
[ 0.054986] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[ 0.054986] script_sysfs_init success
[ 0.054986] gpiochip_add: registered GPIOs 0 to 383 on device: sunxi-pinctrl
[ 0.054986] sunxi-pinctrl sunxi-pinctrl: initialized sunXi PIO driver
[ 0.054986] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.054986] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.055148] script config pll_video to 297 Mhz
[ 0.055180] script config pll_de to 864 Mhz
[ 0.055205] script config pll_ve to 402 Mhz
[ 0.061950] bio: create slab <bio-0> at 0
[ 0.061950] [ARISC] :sunxi-arisc driver v1.04
[ 0.076943] [ARISC] :arisc version: [v0.1.58]
[ 0.163654] [ARISC] :sunxi-arisc driver v1.04 startup succeeded
[ 0.163781] pwm module init!
[ 0.171646] SCSI subsystem initialized
[ 0.171646] usbcore: registered new interface driver usbfs
[ 0.171646] usbcore: registered new interface driver hub
[ 0.171646] usbcore: registered new device driver usb
[ 0.171646] twi_chan_cfg()340 - [twi0] has no twi_regulator.
[ 0.171646] twi_chan_cfg()340 - [twi1] has no twi_regulator.
[ 0.171646] twi_chan_cfg()340 - [twi2] has no twi_regulator.
[ 0.171646] Linux video capture interface: v2.00
[ 0.171718] Advanced Linux Sound Architecture Driver Version 1.0.25.
[ 0.172304] Bluetooth: Core ver 2.16
[ 0.172369] NET: Registered protocol family 31
[ 0.172393] Bluetooth: HCI device and connection manager initialized
[ 0.172422] Bluetooth: HCI socket layer initialized
[ 0.172445] Bluetooth: L2CAP socket layer initialized
[ 0.172479] Bluetooth: SCO socket layer initialized
[ 0.172586] Switching to clocksource arch_sys_counter
[ 0.183438] FS-Cache: Loaded
[ 0.183767] CacheFiles: Loaded
[ 0.195670] NET: Registered protocol family 2
[ 0.195984] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.196546] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.196714] TCP bind hash table entries: 8192 (order: 4, 98304 bytes)
[ 0.196858] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.196886] TCP: reno registered
[ 0.196908] UDP hash table entries: 128 (order: 0, 4096 bytes)
[ 0.196953] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
[ 0.197265] NET: Registered protocol family 1
[ 0.197667] RPC: Registered named UNIX socket transport module.
[ 0.197701] RPC: Registered udp transport module.
[ 0.197722] RPC: Registered tcp transport module.
[ 0.197743] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.198224] hw perfevents: enabled with ARMv7 Cortex_A7 PMU driver, 5 counters available
[ 0.198362] sunxi_reg_init enter
[ 0.199096] audit: initializing netlink socket (disabled)
[ 0.199161] type=2000 audit(0.190:1): initialized
[ 0.201581] NTFS driver 2.1.30 [Flags: R/W].
[ 0.201895] fuse init (API version 7.18)
[ 0.202256] msgmni has been set to 484
[ 0.203709] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[ 0.203759] io scheduler noop registered
[ 0.203779] io scheduler deadline registered
[ 0.203851] io scheduler cfq registered (default)
[ 0.204325] [DISP]disp_module_init
[ 0.204656] cmdline,init_disp=
[ 0.204696] cmdline,disp=
[ 0.214840] [DISP] Fb_map_kernel_logo,line:926:Fb_map_kernel_logo failed!
[ 0.230039] Console: switching to colour frame buffer device 160x45
[ 0.246402] [DISP]disp_module_init finish
[ 0.246750] sw_uart_get_devinfo()1503 - uart0 has no uart_regulator.
[ 0.246930] sw_uart_get_devinfo()1503 - uart1 has no uart_regulator.
[ 0.247103] sw_uart_get_devinfo()1503 - uart2 has no uart_regulator.
[ 0.247276] sw_uart_get_devinfo()1503 - uart3 has no uart_regulator.
[ 0.248031] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[ 0.248209] sw_uart_pm()890 - uart0 clk is already enable
[ 0.248364] sw_console_setup()1233 - console setup baud 115200 parity n bits 8, flow n
[ 0.360189] console [ttyS0] enabled
[ 0.530429] uart1: ttyS1 at MMIO 0x1c28400 (irq = 33) is a SUNXI
[ 0.530691] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[ 0.530955] uart3: ttyS3 at MMIO 0x1c28c00 (irq = 35) is a SUNXI
[ 0.531802] [drm] Initialized drm 1.1.0 20060810
[ 0.535869] loop: module loaded
[ 0.659319] sunxi_spi_chan_cfg()1383 - [spi-0] has no spi_regulator.
[ 0.840684] sunxi_spi_chan_cfg()1383 - [spi-1] has no spi_regulator.
[ 0.965661] spi spi0: master is unqueued, this is deprecated
[ 1.150380] tun: Universal TUN/TAP device driver, 1.6
[ 1.150388] tun: (C) 1999-2004 Max Krasnyansky <maxk#qualcomm.com>
[ 1.151363] PPP generic driver version 2.4.2
[ 1.151552] PPP BSD Compression module registered
[ 1.151560] PPP Deflate Compression module registered
[ 1.152440] PPP MPPE Compression module registered
[ 1.152451] NET: Registered protocol family 24
[ 1.152493] PPTP driver version 0.8.5
[ 1.152743] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.172877] sunxi-ehci sunxi-ehci.1: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.172912] sunxi-ehci sunxi-ehci.1: new USB bus registered, assigned bus number 1
[ 1.296094] sunxi-ehci sunxi-ehci.1: irq 104, io mem 0xf1c1a000
[ 1.480038] sunxi-ehci sunxi-ehci.1: USB 0.0 started, EHCI 1.00
[ 1.632720] hub 1-0:1.0: USB hub found
[ 1.685669] hub 1-0:1.0: 1 port detected
[ 1.714667] sunxi-ehci sunxi-ehci.2: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.727974] sunxi-ehci sunxi-ehci.2: new USB bus registered, assigned bus number 2
[ 1.741191] sunxi-ehci sunxi-ehci.2: irq 106, io mem 0xf1c1b000
[ 1.770036] sunxi-ehci sunxi-ehci.2: USB 0.0 started, EHCI 1.00
[ 1.781512] hub 2-0:1.0: USB hub found
[ 1.789904] hub 2-0:1.0: 1 port detected
[ 1.818952] sunxi-ehci sunxi-ehci.3: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.832323] sunxi-ehci sunxi-ehci.3: new USB bus registered, assigned bus number 3
[ 1.845590] sunxi-ehci sunxi-ehci.3: irq 108, io mem 0xf1c1c000
[ 1.870043] sunxi-ehci sunxi-ehci.3: USB 0.0 started, EHCI 1.00
[ 1.881664] hub 3-0:1.0: USB hub found
[ 1.890302] hub 3-0:1.0: 1 port detected
[ 1.919344] sunxi-ehci sunxi-ehci.4: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.932740] sunxi-ehci sunxi-ehci.4: new USB bus registered, assigned bus number 4
[ 1.945967] sunxi-ehci sunxi-ehci.4: irq 110, io mem 0xf1c1d000
[ 1.970042] sunxi-ehci sunxi-ehci.4: USB 0.0 started, EHCI 1.00
[ 1.981680] hub 4-0:1.0: USB hub found
[ 1.990489] hub 4-0:1.0: 1 port detected
[ 1.999718] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 2.031228] sunxi-ohci sunxi-ohci.1: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 2.044385] sunxi-ohci sunxi-ohci.1: new USB bus registered, assigned bus number 5
[ 2.057397] sunxi-ohci sunxi-ohci.1: irq 105, io mem 0xf1c1a400
[ 2.124576] hub 5-0:1.0: USB hub found
[ 2.133311] hub 5-0:1.0: 1 port detected
[ 2.162621] sunxi-ohci sunxi-ohci.2: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 2.175860] sunxi-ohci sunxi-ohci.2: new USB bus registered, assigned bus number 6
[ 2.189035] sunxi-ohci sunxi-ohci.2: irq 107, io mem 0xf1c1b400
[ 2.264561] hub 6-0:1.0: USB hub found
[ 2.273445] hub 6-0:1.0: 1 port detected
[ 2.302798] sunxi-ohci sunxi-ohci.3: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 2.316105] sunxi-ohci sunxi-ohci.3: new USB bus registered, assigned bus number 7
[ 2.329298] sunxi-ohci sunxi-ohci.3: irq 109, io mem 0xf1c1c400
[ 2.404584] hub 7-0:1.0: USB hub found
[ 2.413449] hub 7-0:1.0: 1 port detected
[ 2.442827] sunxi-ohci sunxi-ohci.4: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 2.456174] sunxi-ohci sunxi-ohci.4: new USB bus registered, assigned bus number 8
[ 2.469459] sunxi-ohci sunxi-ohci.4: irq 111, io mem 0xf1c1d400
[ 2.544586] hub 8-0:1.0: USB hub found
[ 2.553518] hub 8-0:1.0: 1 port detected
[ 2.562915] Initializing USB Mass Storage driver...
[ 2.573211] usbcore: registered new interface driver usb-storage
[ 2.584572] USB Mass Storage support registered.
[ 2.594457] usbcore: registered new interface driver ums-alauda
[ 2.605819] usbcore: registered new interface driver ums-cypress
[ 2.617280] usbcore: registered new interface driver ums-datafab
[ 2.628608] usbcore: registered new interface driver ums_eneub6250
[ 2.640060] usbcore: registered new interface driver ums-freecom
[ 2.651238] usbcore: registered new interface driver ums-isd200
[ 2.662342] usbcore: registered new interface driver ums-jumpshot
[ 2.673509] usbcore: registered new interface driver ums-karma
[ 2.684357] usbcore: registered new interface driver ums-onetouch
[ 2.695402] usbcore: registered new interface driver ums-realtek
[ 2.706252] usbcore: registered new interface driver ums-sddr09
[ 2.716948] usbcore: registered new interface driver ums-sddr55
[ 2.727582] usbcore: registered new interface driver ums-usbat
[ 2.738113] usbcore: registered new interface driver usbserial
[ 2.748503] usbserial: USB Serial Driver core
[ 2.757202] usbcore: registered new interface driver option
[ 2.767257] USB Serial support registered for GSM modem (1-port)
[ 2.778459] file system registered
[ 2.787739] android_usb gadget: Mass Storage Function, version: 2009/09/11
[ 2.799369] android_usb gadget: Number of LUNs=3
[ 2.808438] lun0: LUN: removable file: (no medium)
[ 2.817768] lun1: LUN: removable file: (no medium)
[ 2.826963] lun2: LUN: removable file: (no medium)
[ 2.836406] android_usb gadget: android_usb ready
[ 2.846187] mousedev: PS/2 mouse device common for all mice
[ 2.857107] ls_fetch_sysconfig_para: ls_unused.
[ 2.866277] [RTC] WARNING: Rtc time will be wrong!!
[ 2.875373] [RTC] WARNING: use *internal OSC* as clock source
[ 2.885690] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0
[ 2.896812] i2c /dev entries driver
[ 2.904919] IR RC5(x) protocol handler initialized
[ 2.914167] tscdev_init: tsc driver is disabled
[ 2.923307] Driver for 1-wire Dallas network protocol.
[ 2.932808] sunxi_wdt_init_module: sunxi WatchDog Timer Driver v1.0
[ 2.943662] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf
[ 2.955143] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0)
[ 2.970118] wdt_enable, write reg 0xf1c20cb8 val 0x00000000
[ 2.980326] timeout_to_interv, line 167
[ 2.988404] interv_to_timeout, line 189
[ 2.996449] wdt_set_tmout, write 0x000000b0 to mode reg 0xf1c20cb8, actual timeout 16 sec
[ 3.009669] device-mapper: uevent: version 1.0.3
[ 3.019024] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel#redhat.com
[ 3.032580] Bluetooth: HCI UART driver ver 2.2
[ 3.041598] Bluetooth: HCI H4 protocol initialized
[ 3.050941] Bluetooth: HCI BCSP protocol initialized
[ 3.060436] Bluetooth: HCILL protocol initialized
[ 3.069638] Bluetooth: HCIATH3K protocol initialized
[ 3.079317] Bluetooth: MSM Sleep Mode Driver Ver 1.2
[ 3.088976] Bluetooth: init no bt used in configuration
[ 3.088982]
[ 3.104775] [cpu_freq] ERR:get cpu extremity frequency from sysconfig failed, use max_freq
[ 3.120910] no red_led, ignore it!
[ 3.131197] usbcore: registered new interface driver usbhid
[ 3.141947] usbhid: USB HID core driver
[ 3.152119] script_get_item audio_pa_ctrl not found
[ 3.167806] asoc: sndcodec <-> sunxi-codec mapping ok
[ 3.183410] asoc: sndhdmi <-> sunxi-hdmiaudio.0 mapping ok
[ 3.195521] oprofile: using arm/armv7-ca7
[ 3.205005] u32 classifier
[ 3.212837] Actions configured
[ 3.220990] Netfilter messages via NETLINK v0.30.
[ 3.230635] nf_conntrack version 0.5.0 (3872 buckets, 15488 max)
[ 3.242335] ctnetlink v0.93: registering with nfnetlink.
[ 3.252669] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[ 3.264844] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
[ 3.275528] mmc0: new SDHC card at address 0001
[ 3.275741] xt_time: kernel timezone is -0000
[ 3.275908] IPv4 over IPv4 tunneling driver
[ 3.276373] gre: GRE over IPv4 demultiplexor driver
[ 3.276382] ip_gre: GRE over IPv4 tunneling driver
[ 3.277016] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 3.277210] arp_tables: (C) 2002 David S. Miller
[ 3.277287] TCP: cubic registered
[ 3.277294] Initializing XFRM netlink socket
[ 3.357187] NET: Registered protocol family 10
[ 3.366318] mmcblk0: mmc0:0001 SD 3.72 GiB
[ 3.375839] Mobile IPv6
[ 3.382646] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 3.382684] mmcblk0: p1 p2
[ 3.383449] *******************sd init ok*******************
[ 3.409962] IPv6 over IPv4 tunneling driver
[ 3.419556] NET: Registered protocol family 17
[ 3.428376] NET: Registered protocol family 15
[ 3.437283] Bluetooth: RFCOMM TTY layer initialized
[ 3.446478] Bluetooth: RFCOMM socket layer initialized
[ 3.455844] Bluetooth: RFCOMM ver 1.11
[ 3.463574] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.473004] Bluetooth: BNEP filters: protocol multicast
[ 3.482329] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 3.492549] L2TP core driver, V2.0
[ 3.499872] PPPoL2TP kernel driver, V2.0
[ 3.507783] L2TP IP encapsulation support (L2TPv3)
[ 3.516771] L2TP netlink interface
[ 3.524201] L2TP ethernet pseudowire support (L2TPv3)
[ 3.533588] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 3.545743] ThumbEE CPU extension supported.
[ 3.554047] Registering SWP/SWPB emulation handler
[ 3.563802] cmdline,disp=
[ 3.601355] sunxi-rtc sunxi-rtc: setting system clock to 1970-01-01 00:00:08 UTC (8)
[ 3.613650] ths_fetch_sysconfig_para: type err device_used = 1.
[ 3.625339] CPU Budget:Register notifier
[ 3.633378] CPU Budget:register Success
[ 3.641218] sunxi-budget-cooling sunxi-budget-cooling: Cooling device registered: thermal-budget-0
[ 3.657864] ALSA device list:
[ 3.664997] #0: audiocodec
[ 3.671931] #1: sndhdmi
[ 3.701347] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.714240] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 3.725065] Freeing init memory: 320K
[ 4.210107] [DISP] disp_device_attached_and_enable,line:159:attched ok, mgr0<-->device0, type=4, mode=5
I have compared with the Dmesg of the image they provided and it is same (no extra errors). The only difference is that it doesn't stop at the last message and above and continues with more message like this
[ 3.740859] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 3.751773] Freeing init memory: 320K
[ 3.994008] systemd[1]: Failed to insert module 'kdbus': Function not implemented
[ 4.480527] systemd[1]: systemd 225 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[ 4.522559] systemd[1]: Detected architecture arm.
[ 4.556652] systemd[1]: Set hostname to <FriendlyARM>.
[ 4.813095] systemd[1]: display-manager.service: Cannot add dependency job, ignoring: Unit display-manager.service failed to load: No such file or directory.
[ 4.835364] systemd[1]: Reached target Swap.
[ 4.849758] systemd[1]: Reached target Encrypted Volumes.
[ 4.865289] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 4.883786] systemd[1]: Reached target Remote File Systems (Pre).
[ 4.900430] systemd[1]: Created slice Root Slice.
[ 4.915916] systemd[1]: Created slice System Slice.
[ 4.931753] systemd[1]: Created slice User and Session Slice.
[ 4.948846] systemd[1]: Created slice system-getty.slice.
[ 4.965667] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ 4.983471] systemd[1]: Listening on udev Control Socket.
[ 5.000354] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 5.019741] systemd[1]: Reached target Paths.
[ 5.035599] systemd[1]: Listening on Journal Socket.
[ 5.200617] systemd[1]: Mounting Debug File System...
[ 5.290705] systemd[1]: Starting Remount Root and Kernel File Systems...
[ 5.390688] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[ 5.415235] systemd[1]: Listening on Journal Audit Socket.
[ 5.434841] systemd[1]: Reached target Slices.
[ 5.453278] systemd[1]: Listening on udev Kernel Socket.
[ 5.580939] systemd[1]: Starting udev Coldplug all Devices...
[ 5.608874] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 5.770898] systemd[1]: Starting Load Kernel Modules...
[ 5.789989] systemd[1]: Listening on Journal Socket (/dev/log).
[ 5.890778] systemd[1]: Starting Journal Service...
[ 6.027527] systemd[1]: Mounted Debug File System.
[ 6.160197] systemd[1]: Started Remount Root and Kernel File Systems.
[ 6.330140] systemd[1]: Started Create list of required static device nodes for the current kernel.
[ 6.750244] systemd[1]: Started Load Kernel Modules.
[ 6.920156] systemd[1]: Started udev Coldplug all Devices.
[ 6.942933] systemd[1]: Started Journal Service.
So I guess the issue is with the rootfs not being detected and mounted correctly. Please guide me on this.
I'm pretty sure the problem is that the linux doesn't activate a console on uart.
Take a look at kernel log:
[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait init=/sbin/init
As noted in http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/configure-kernel.html:
When multiple consoles are listed output is sent to all consoles and input is taken from the last listed console. The last console is the one Linux uses as the /dev/console device.
So try making console=ttyS0,115200 being the last (or the only) console option by tuning bootargs u-boot environment variable.
To check this suggestion, just "Hit any key to stop autoboot", then use printenv to inspect default bootargs content, run setenv bootargs ... ... ... and finally, run bootd. However, be sure to inspect bootcmd and what does it call, because one of those things may invoke setenv bootargs during bootcmd execution and overwrite your manual option.
P.S. init=/sbin/init may be omitted.