I managed to do it, but changes revert after rebooting. (Update: This can be worked around; see the bottom of this post.)
I did it via a GUI in python called HDA Analyzer that can be fetched and used from the ALSA website like the following:
wget -O run.py http://www.alsa-project.org/hda-analyzer.py
sudo python run.py (Their page doesn't say
sudo, but if you don't do it with
sudo, it will download the scripts but fail to run them and complain about privileges.)
Now this will make the GUI start, but its usage is not explained, and it's not exactly newbie-friendly. So to make life easier I'll explain how I did it. In my case, it was a matter of two clicks; the tricky part was locating exactly what needs to be clicked.
(Note: You may explore all the nodes one by one, but don't modify anything you don't understand. Any modification (e.g. ticking a checkbox) becomes effective immediately; there's no apply button.)
The list contains many nodes called
Node[0x##] followed by any of
VENDOR. The only ones you have to look in are the
There are multiple types of PIN nodes; the type we want will fill the whole window with panels/control groups (It helps to stretch or maximize the window), as in this screenshot. (The site prevented me from inserting the image inline, sorry.)
Inside the Config Default field, some nodes will have in the first line
Jack Connection: N/A; we need the ones that say
Jack Connection: Jack as in the screenshot.
To change a Line-In to an output jack, look until you find the node that says
Jack Type: Line In. (And notice the
Jack Location2: Rear and
Jack Color: Blue.)
Then, in the three checkboxes in the Widget Control group below, uncheck IN and check OUT.
Using the same way, you can assign any of the front or rear jacks to either input or output.
Now if you close the window, it will ask whether you want to revert changes. Saying yes reverts them immediately; saying no keeps them but only for this session.
If you want to keep your changes permanently, don't close HDA Analyzer yet. Instead, click "Exp" (Export) at the bottom-left and use Save As to write the python script to a file. Now copy that file to something like
/etc/hda-mods.py and edit
/etc/rc.local as root (e.g. using
gksudo gedit /etc/rc.local) and add the line
python /etc/hda-mods.py right before the
exit 0 line, then save it and reboot. Your changes should survive.