33

When I use Minicom to capture data from a serial port, I need to save the big data into a file, named minicom.cap. However, if I press Ctrl+A and L to capture file, it failed. No file was created (minicom.cap did not exist beforehand). My download directory was properly created. My OS is Mint, and I read data from Arduino nano v3.0

3
  • This sounds like it could be a permissions issue. Try running minicom as root. If that fixes it, let me know so I can post this as an answer :)
    – ZnArK
    Commented Jul 5, 2012 at 20:21
  • 1
    Thank you for your help :-). And I know why now. It seems that I config minicom incorrectly, and it saves the output in the default directory.
    – Kerwong
    Commented Jul 11, 2012 at 6:30
  • 6
    post your solution as an answer so this can be marked solved and other people with the same problem can be helped
    – ZnArK
    Commented Jul 11, 2012 at 13:41

5 Answers 5

85

Did you try to start minicom as

minicom -C capturefile

Unless i got something wrong, it should start to capture incoming data immediately.

1
9

OP might miss step "Shift + L" after writing, so the overall procedure is as below:

1 (inside minicom)

2 Ctrl A + Z

3 Shift + L

4 (wait for writing ... )

5 Shift + L

6 (check the file you have written, default is minicom.cap, you may want to find it at /root/minicom.cap)

1
  • 1
    The user already pointed out a solution in the comments to the original question.
    – Nic3500
    Commented Nov 15, 2017 at 1:53
1
chown root:dialout /etc/minicom/minirc.dfl
chmod 664 /etc/minicom/minirc.dfl

Now any member of the dialout group can write to minirc.dfl

0

minicom needs a configuration file that is under root permissions and is stored at /etc/minicom/ and is named minirc.dfl.

Usually when you first run minicom for the first time, as sudo, you can save the minirc.dfl, as if you run as any other user it will not save.

That may be your problem.

2
  • 1
    you can also have your config files in ~/.minirc.X where X is either dfl for default or o symbolic name - no need for sudo but may need to check permissions on actual serial port (on many Linux distros you would want to be in the dialout group) - but not sure about Mint
    – nhed
    Commented Jan 10, 2017 at 22:04
  • As @nhed said, it saves in your user directory instead of roots user directory. Yes the when run as root you are correct, but not when run as a regular user. Commented Aug 17, 2021 at 23:47
0

This is a little more than the scope of the question calls for but as it has already been answered, I thought somebody might like to do things a little user friendly.

You might be interested in this if you frequently open up a serial connection to multiple devices. You can do this with desktop shortcuts.

I use this for switch and router connections, I have two different console cables, a USB to mini USB and also a db9 with USB A adapter to rj45.

Using the shortcuts here means I don't need to manually reconfigure minicom every time I want to switch devices. The shortcuts give the correct configuration file as a parameter (identifier) as well as the capture file (-C). All i need to do it make sure my devices are connected to my computer with the cables.

If this is something you could use, run these commands as a normal user from your terminal (not from minicom). The configuration files will be saved to your home directory where minicom can find them.

Make a log file directory: You might choose to just log in /var/log but I want quick access to the log files.

mkdir ~/minicom 

Find your device:

dmesg | grep tty

If your cable uses an RS-232 chip such as some usb to mini usb console cables, your tty device will likely be on ttyACM* and not ttyUSB*

Create the minicom configuration file using nano. Adapt the capitalised parts to fit your needs, baudrate may be set incorrectly if you get quirky characters or no output. You may create as many as you need along with the desktop shortcuts. just change the identifier.

nano ~/.minirc.IDENTIFIER

pu port            /dev/ttyDEVICE
pu baudrate        9600
pu rtscts          No
pu logfname        /home/USER/minicom/IDENTIFIER.log

Create a desktop shortcut.

nano ~/Desktop/IDENTIFIER.desktop

[Desktop Entry]
Encoding=UTF-8 
Name=Minicom IDENTIFIER
Comment=Something relevant to your connection/device name maybe
Exec=minicom IDENTIFIER -C/home/USER/minicom/IDENTIFIER.log
Terminal=1
Type=Application

Make it executable

chmod +x ~/Desktop/IDENTIFIER.desktop

That's it now test the connection, double click your new shortcut.

A note about the IDENTIFIER part, it can be anything. a router or switch model, a device name or type. Do what suits you but maybe use hyphens instead of spaces, I've not tested that but i would imagine they would cause issues such as only getting the name before the first space or worse, attempting to load multiple minicom.identifier files.

Once you have created your first connection, open another terminal:

tail -fn25 ~/minicom/IDENTIFIER.log

Because you have set minicom to capture output, by tailing the log/capture file you can scroll back as far as you need should you be running things with lengthy output, It can be useful for configuration files in routers/switches for example which can be thousands of lines long. Just scroll to the part you are working on in the tailed file to use as a reference while you make changes in minicom, the tail terminal will still collect data but will not automatically jump back to the new line as minicom does when you star to type.

If somebody more shell savvy than myself would like to add to this to make a shell script that accepts the required parameters for setting up a new connection profile,logs etc I wouldn't be too upset about it :)

As an aside, I wanted to add a command prior to minicom running in the shortcut to apply a title to the terminal window using the identifier, I could not get this to work in Ubuntu 20.04 at the time of this posting.

Not the answer you're looking for? Browse other questions tagged or ask your own question.