[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Freeipmi-devel] Need help in IPMI over serial
From: |
Anand Babu Periasamy |
Subject: |
Re: [Freeipmi-devel] Need help in IPMI over serial |
Date: |
Tue, 12 Oct 2010 16:25:14 -0700 |
Hi Neha,
You can also take a look at this document I wrote long time ago.
http://www.gnu.org/software/freeipmi/ipmi-over-ts2000.pdf
Do you really think you want to manage IPMI over serial port? If you
send special key codes to the serial port, BMC switches into IPMI
terminal mode, where you can type IPMI basic high level commands. It
is limited, but requires no coding. I am not sure if this terminal
mode is well supported by major vendors. There is also way to
establish PPP session and use LAN interface over it. I have not tried
it.
My preference is to use IPMI over LAN or inband approach. Serial ports
are dying slowly. If you are paranoid about security over Ethernet
access, then you can proceed with the serial port interface.
Andy gave you a very good reply.
--
Anand Babu Periasamy
Blog [http://www.unlocksmith.org]
On Mon, Oct 11, 2010 at 8:23 PM, Neha M <address@hidden> wrote:
> Hi Andy
>
> Thanks for the detailed input. Yes, I would like to go through the serial
> code. Kindly share it.
> Also, do you have any ppt or pdf which can help in understanding IPMI. The
> spec pdf is very difficult for me to understand.
>
> Once again thanks for the help.
>
> Regards,
> NM
>
> On Mon, Oct 11, 2010 at 10:32 PM, Andy Cress <address@hidden>
> wrote:
>>
>> NM,
>>
>> First, you want to clearly understand whether you really need or want
>> IPMI basic-mode serial as your interface, since most serial connections
>> for management involve one serial port for the serial console, and
>> sometimes sharing that port with IPMI serial for queries and power
>> control/reset. For this purpose IPMI Terminal mode is much more
>> useful, and is supported on almost any IPMI 1.5/2.0 BMCs that support
>> serial channels. Appendix E of the IPMI specification gives the syntax.
>>
>>
>> If you really want to dedicate a serial port for IPMI basic-mode access,
>> then you can configure the IPMI serial channel, but the client
>> application is what is not readily available. I have some code from
>> 2002 that I included with a custom telnet application to establish an
>> IPMI serial session and perform the reset command. This was especially
>> useful for an environment where there are serial terminal servers, so
>> the serial console would be accessed via telnet, then an escape sequence
>> would be used for telnet command mode to issue the IPMI reset. Let me
>> know if you want that code to reuse.
>>
>> Andy
>>
>> -----Original Message-----
>> From: address@hidden
>> [mailto:address@hidden On
>> Behalf Of New2IPMI
>> Sent: Monday, October 11, 2010 2:10 AM
>> To: address@hidden
>> Subject: Re: [Freeipmi-devel] Need help in IPMI over serial
>>
>>
>> Hi
>>
>> i am new to IPMI and need to write a code for IPMI over serial. Can you
>> suggest where i can get soem help in understanding - how to establish
>> connections; authentications, send messages, etc.
>>
>> Thanks
>> NM
>>
>> Anand Babu Periasamy wrote:
>> >
>> > Evgeny,
>> > GNU FreeIPMI doesn't have serial driver yet. So far I haven't found
>> > any users for it. You are the first one!. I have used serial interface
>> > through IPMI TERMINAL MODE though. IPMI TERMINAL MODE doesn't require
>> > any special driver though.
>> >
>> > First step is to get access to the board. I assume you have attached a
>> > NULL modem cable to the BMC.
>> >
>> > What is your Channel Access Mode?
>> > My advise is to put to ALWAYS-AVAILABLE during your development
>> > stage. Later on may be you can use SHARED mode, if you also with to
>> > share it with the host OS for console prediction.
>> >
>> > If you are in ALWAYS-AVAILABLE available mode, do you see BMC
>> > constantly throwing some junk chars (ping) every 2 seconds? This
>> > confirms that your BMC is accessible and ready to accept your
>> > commands.
>> >
>> > Obviously serial basic mode is single session based and requires
>> > authentication. Individual packets are not signed. There is no session
>> > header either. To activate a session, you issue Get Channel Auth
>> > Capabilities, Get Session Challenge and Activate Session commands. Get
>> > Channel Auth Capabilities is required to trigger the BMC to enter into
>> > Basic Mode. BASIC mode only support plain text passwords.
>> >
>> > Request Packet structure is like this:
>> >
>> > serial_basic_msg_hdr_rq (structure explained below)
>> > cmd (8 bits)
>> > data bytes (depends on cmd)
>> > serial_basic_msg_trlr (structure explained below)
>> >
>> >
>> > Request Packet structure is like this:
>> >
>> > serial_basic_msg_hdr_rq (structure explained below)
>> > cmd (8 bits)
>> > completion_code (8 bits)
>> > response data (depends on cmd)
>> > serial_basic_msg_trlr (structure explained below)
>> >
>> >
>> > /* IPMI Serial-Basic Message Request Header */
>> > fiid_template_t tmpl_serial_basic_msg_hdr_rq =
>> > {
>> > {8, "rs_addr", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {2, "rs_lun", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {6, "net_fn", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {8, "checksum1", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {8, "rq_addr", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {2, "rq_lun", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {6, "rq_seq", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {0, "", 0}
>> > };
>> >
>> >
>> > /* IPMI Serial-Basic Message Response Header */
>> > fiid_template_t tmpl_lan_msg_hdr_rs =
>> > {
>> > {8, "rq_addr", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {2, "rq_lun", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {6, "net_fn", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {8, "checksum1", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {8, "rs_addr", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {2, "rs_lun", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {6, "rq_seq", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {0, "", 0}
>> > };
>> >
>> > /* IPMI Serial-Basic Message Trailer */
>> > fiid_template_t tmpl_setial_basic_msg_trlr =
>> > {
>> > {8, "checksum2", FIID_FIELD_REQUIRED | FIID_FIELD_LENGTH_FIXED},
>> > {0, "", 0}
>> > };
>> >
>> >
>> > Can you please tell me what type of BMC you have? I can write a driver
>> > for serial mode or help you write one.
>> >
>> > --
>> > Anand Babu Periasamy
>> > GPG Key ID: 0x62E15A31
>> > Blog [http://ab.freeshell.org]
>> > The GNU Operating System [http://www.gnu.org]
>> >
>> >
>> >
>> > Evgeny S. Sidorenko writes:
>> >
>> >> Hi all!
>> >> I have the following problem: I have device that connects to the
>> computer
>> >> via serial port, and provides IPMI over serial in Basic Mode. I have
>> >> problem in understanding how to generate messages (format, etc),
>> >> send/receive requests/answers, and so on.
>> >> Could you help me in this problem? I need only basically knowledge,
>> i.e.
>> >> how to create connections, create messages, etc
>> >>
>> >> --
>> >> Best regards,
>> >> Evgeny
>> >