Bug 678875

Summary: /lib/udev/console_check does not recognize /dev/ttyO* on ARM (OMAP) platform
Product: [Fedora] Fedora Reporter: Niels de Vos <ndevos>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 14CC: iarlyy, jcm, jonathan, notting, pbrobinson, plautrba, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: arm7   
OS: Linux   
Whiteboard:
Fixed In Version: initscripts-9.20.2-1.fc14.1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-27 04:53:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 245418    
Attachments:
Description Flags
Recognize PORT_OMAP as ttyO*
none
Patch for Fedora 12 - older kernel-headers do not define PORT_OMAP
none
Patch for kernel-headers < 2.6.37 - Fedora 14 none

Description Niels de Vos 2011-02-20 15:01:00 UTC
Created attachment 479770 [details]
Recognize PORT_OMAP as ttyO*

Description of problem:
OMAP serial ports can not be used to login when passing "console=ttyO2,115200n8" as kernel parameter.

/lib/udev/console_check does not recognize PORT_OMAP (96) as a serial port for a console.

Since linux-2.6/include/linux/serial_core.h commit b612633b PORT_OMAP has been introduced. With this driver the serial ports are not available as ttyS* any longer, instead ttyO* should be used.


How reproducible:
100%


Steps to Reproduce:
1. connect a serial console on a OMAP-board (i.e. a beagleboard)
2. boot the board with kernel parameter "console=ttyO2,115200n8"
3. after the initial kernel messages, nothing seems to happen


Actual results:
There is likely a login prompt on the S-Video and/or HDMI output. Unfortunately I only have access to the serial port so I can not check this. (No network, so there is no possibility to check for running getty processes either.)


Expected results:
When passing "console=ttyS2,115200n8" with older kernels there is a login prompt. This should be the case for newer kernel too.


Additional info:
The define for (struct serial_struct).type == PORT_OMAP was introduced during the 2.6.36 release cycle:

$ cd linux-2.6/
$ git describe --contains b612633b
v2.6.37-rc1~121^2~25^2^2~2
$ git describe --tags b612633b
v2.6.36-rc5-105-gb612633
$ git shortlog -n1 b612633b
Govindraj.R (1):
      serial: Add OMAP high-speed UART driver

Comment 1 Niels de Vos 2011-02-20 15:12:17 UTC
Created attachment 479771 [details]
Patch for Fedora 12 - older kernel-headers do not define PORT_OMAP

This patch was tested on a Fedora 12 root filesystem with the packages available from:
- http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=87050
- http://arm.koji.fedoraproject.org/scratch/devos/task_87049/

As older kernel-headers do not define PORT_OMAP, therefore this was added within an #ifndef.

Comment 2 Bill Nottingham 2011-02-21 17:10:43 UTC
Added to git, and to the F-14 branch. It will make some future update.

Note that this moved to systemd in F-15; you'll want to check the code there.

Comment 3 Jon Masters 2011-02-23 04:10:39 UTC
Also note that the device rename in the OMAP tree to /dev/ttyO form only happened in more recent kernels, so a lot of people won't have noticed this yet.

Comment 4 Niels de Vos 2011-02-23 09:43:58 UTC
@Bill:
systemd-18/src/target.c:target_add_getty_dependencies() seems to be checking systemd-18/src/util.c:tty_is_vc() which will return "true" for "tty[0-9]+". From my understanding, systemd works out of the box with any kind of serial-port. If it doesn't, I'll open a new bug.

@Jon:
Yes, this changed around 2.6.36-rc5. Unfortunately I got the advise to compile my own kernel for the ARM board I have, and run into this issue... I was unaware that systemd would be responsible for the serial-console on Fedora 15.

Comment 5 Jon Masters 2011-02-23 17:06:54 UTC
Yes, indeed. I thought it was .37, but could have been .36 (depending on the tree you were/are using). My BeagleBoards are now able to run stock .38 RCs and they certainly see this change. So it's going to bite everyone soon.

Comment 6 Niels de Vos 2011-02-23 21:35:08 UTC
Created attachment 480581 [details]
Patch for kernel-headers < 2.6.37 - Fedora 14

Bill, looks like the patch that you included for the F-14 branch is not the correct one. Sorry, my mistake! it looks like I attached the same patch twice.

This patch is the correct one, it defines PORT_OMAP if the kernel-headers do not contain it. This is only needed for kernel-headers < 2.6.37. I guess that counts F-14 in. Can you please replace it?

Many thanks,
Niels

Comment 7 Bill Nottingham 2011-02-23 22:07:46 UTC
Fixed in git.

Comment 8 Fedora Update System 2011-02-25 20:40:38 UTC
Package initscripts-9.20.2-1.fc14.1:
* should fix your issue,
* was pushed to the Fedora 14 updates-testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing initscripts-9.20.2-1.fc14.1'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/initscripts-9.20.2-1.fc14.1
then log in and leave karma (feedback).

Comment 9 Fedora Update System 2011-02-26 04:00:32 UTC
initscripts-9.20.2-1.fc14.1 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update initscripts'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/initscripts-9.20.2-1.fc14.1

Comment 10 Fedora Update System 2011-02-27 04:52:42 UTC
initscripts-9.20.2-1.fc14.1 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.