- Dev C 2b 2b Mac Os X Download Free
- Dev C 2b 2b Mac Os X Download Windows 10
- Dev C 2b 2b Mac Os X Downloads
- Dev C 2b 2b Mac Os X Download Mac
This wiki page will cover building a C++ executable program from the command line that statically links to libssl.a and libcrypto.a. When performing a static link against the OpenSSL library, you have to embed the expected FIPS signature in your executable after final linking. Embedding the FIPS signature in your executable is most often accomplished with fisld.
WxDev-C is a development team that has taken Dev-C and added new features such as support for multiple compilers and a RAD designer for wxWidgets applications. On June 30, 2011 an unofficial version 4.9.9.3 of Dev-C was released by Orwell (Johan Mes), an independent programmer, 3 featuring the more recent GCC 4.5.2 compiler, Windows. NeXT's Project Builder (now Xcode) replaced it in the move to Mac OS X. Where can I get at least reference materials so I don't have to guess-and-check my way around Carbon/the System Toolbox? Google search for site:developer.apple.com 'inside macintosh. Synapse X — #1 Script Utility. The price of our product ranges from $15 USD to $20 USD, depending on the payment method used. By purchasing the software, you hereby agree to the Terms and Conditions. If you do not agree with the Terms and Conditions, please refrain from purchasing and/or using the software. C Compiler free download - Digital Mars C/C Compiler, Programming C, Crossword Compiler, and many more programs. The Microsoft Download Manager solves these potential problems. It gives you the ability to download multiple files at one time and download large files quickly and reliably. It also allows you to suspend active downloads and resume downloads that have failed. Microsoft Download Manager is free and available for download now.
fisld will take the place of the linker (or compiler if invoking via a compiler driver). If you use fisld to compile a source file, fisld will do nothing and simply invoke the compiler you specify through FIPSLD_CC. When it comes time to link, fisld will compile fips_premain.c, add fipscanister.o, and then perform the final link of your program. Once your program is linked, fisld will then invoke incore to embed the FIPS signature in your program.
The procedure requires three minor modifications to fipsld. The modifications will produce fipsld++ that follows the exiting procedures and re-uses the existing components. After fipsld++ is modified, its copied into fips-2.0 with the other FIPS binary components. According to Dr. Henson on the OpenSSL user list, fipsld is not sequestered and can be changed within reason as long as it performs the same basic steps and does not negatively affect the FIPS Object Module or resulting binary.
The example below demonstrates the procedures on Debian 7.3 (x64) using OpenSSL FIPS Capable 1.0.1f and the FIPS Object Module 2.0.5. The example demonstrates Clang and Clang++ with -stdlib=libstdc++. However, the procedures work equally well with GCC and G++ (you omit the -stdlib=libstdc++ for GNU compilers). The modified fisld script also works on Mac OS X 10.8 (be sure to use -stdlib=libc++ rather than libstdc++).
- 6fipsld Modifications
Background[edit]
When attempting to link through the compiler driver when the compiler is C++, you will encounter at least two errors due to fips_premain.c:
If you link with the -Wl,--no-demangle linker flag, you will see the linker is looking for a C++ mangled name because fips_premain.c was compiled with a C++ compiler:
The problem occurs because the symbols are declared extern, and not extern 'C' in fips_premain.c (from around line 85):
fips_premain.c cannot be changed because it is sequestered under the FIPS process. A different method must be used to link a C++ project.
Dev C 2b 2b Mac Os X Download Free
FIPS Object Module[edit]
The FIPS Object Module is built in accordance with the steps detailed in the OpenSSL FIPS 2.0 Security Policy. The OpenSSL Foundation also publishes a user guide at User Guide for the OpenSSL FIPS Object Module v2.0. A grossly simplified version is presented below, but the steps are essentially the same as detailed in the guides and on other pages in the wiki.
After the above executes, the FIPS Object Module components will be installed in /usr/local/ssl/fips-2.0 directory. The components include fipscanister.o (and integrity signature), fips_premain.c (and integrity signature), incore and fipsld.
FIPS Capable Library[edit]
The FIP Capable Library is a version of OpenSSL that uses the FIPS Object Module. The difference between building the standard library and the capable library is simply a switch to config - the fips switch.
After the above executes, the OpenSSL library will be FIPS capable and have static archives and shared objects available. The components will be installed in /usr/local/ssl directory.
The C++ Program[edit]
The sample C++ program is named main.cpp and simply enters FIPS mode.
Build Script[edit]
A build script is used to build the sample program. The build script performs the following and is shown below:
- Sets OPENSSLDIR if its empty
- Sets FIPS_SIG to point to incore
- Sets FIPSLIBDIR to point to $OPENSSLDIR/fips-2.0/lib
- Collects C sources in C_SOURCES
- Collects C++ sources in CXX_SOURCES
- Invokes CC on C_SOURCES
- Invokes CXX on CXX_SOURCES
- Collects object files in PROG_OBJECTS
- Sets FIPSLD_CC to point to CXX
- Sets CXX to point to fipsld
- Links with fipsld via CXX
Compiling occurs as normal, and includes -std=c++11 (via CXXSTD) and -stdlib=libstdc++ (via CXXSTDLIB). Linking will still use the compiler driver and CXXFLAGS, but it omits-std=c++11 and -stdlib=libstdc++. Note: if you are building on Mac OS X, you will need to include -stdlib=libc++ when compiling and linking.
Be wary of using -Bstatic, -lssl and -lcrypto. The Apple linker will simply ignore your request for static linking if a shared object is available. You will have to use the full archive path or delete the shared objects to ensure static linking. Apple linkers will also ignore rpath's and LD_PRELOAD_PATHs (and sometimes DYLD_INSERT_LIBRARIES), so you will silently link to their 0.9.8 version of the library and subsequently crash for mysterious reasons.
fipsld Modifications[edit]
Painting with a broad brush, there are three sections to fipsld. The first one-third or so is configuration, and it does things like locate fipscanister.o and fips_premain.c. The second one-third are steps to build a library or share object. The last one-third are steps to build a stand alone executable.
You have to make three modifications to fipsld, and the modifications generally apply to the last one-third of the fipsld since you are building a executable. If you are building a C++ shared object that statically links to OpenSSL, then you may have to fix the second one-third of fipsld too. Building a shared object that statically links to OpenSSL will encounter additional hardships due to {PREMAIN_DSO} and fips_premain_dso.
To begin, make a copy of fipsld and name it fipsld++.
First Change[edit]
Open fipsld++ and find occurrences where fips_premain.c is compiled. It is compiled through the variable {PREMAIN_C}. There are four instances around lines 125, 145, 175 and 195, and they look similar to the following.
Change the lines so that -x c proceeds '${PREMAIN_C}', and -x none follows it. An example is shown below.
Forcing C compilation on fips_premain.c applies to all configurations (libraries, shared objects, and executables), so you are safe to apply it to all sections of fipsld++.
If you build now, you will receive an error similar to main.exe is not cross-compiler aware:
The error is due to incore looking for the FIPS_text_startX and FIPS_text_endX symbols, which are not present in this configuration. incore will attempt to use the FIPS_text_start and FIPS_text_end symbols (notice the lack of X), but it needs the -exe switch. The -exe switch is discussed next.
Second Change[edit]
To fix the main.exe is not cross-compiler aware error, find occurrences where incore is invoked. incore is invoked through {FIPS_SIG}, and there are 2 instances around line 130 and 180. Fix the second instance around line 180 (you may have to fix the first instance too if building a C++ shared object, but that was not tested). The lines of interest look similar to the following.
Change the lines so the invocation includes the -exe switch:
If you build now, you will calculate the expected signature using your program (main.exe below).
But the fipsld++ program exits early so that your compiled program only spews the expected signature:
The program only outputs the expected fingerprint because the program's init was modified to execute FINGERPRINT_premain. FINGERPRINT_premain calculates the fingerprint, prints it to stdout and then exits. A second compilation of fips_premain.c and linking is required to complete the process. The second compilation and linking of fips_premain.c embeds the fingerprint calculated by the first instance and leaves init unchanged. The fingerprint is passed into fips_premain.c via -DHMAC_SHA1_SIG=... preprocessor macro.
Third Change[edit]
To fix the early exit of fipsld++, find the second occurrence of [ $? -ne 42 ] && exit $? and delete it. The second instance occurs around line 180 (you may have to fix the first instance too if building a C++ shared object, but that was not tested):
The value 42 is a magic value returned by incore that fipsld uses to determine if and how fipsld should continue. After deleting the second instance of the test, your program will build and run as expected.
Unified Diff[edit]
The unified diff between fipsld and fipsld++ is shown below. The lines around 125 and 145 are the one-third of the script that applies to libraries and shared objects. The lines around 170 and 190 are the one-third of the script that applies to executable programs. If you are building a C++ shared object, then you might need to make the changes to both sections of fipsld++ (a C++ shared object was not tested, so the guidance was not provided).
Program Correctness[edit]
You can confirm the program executes successfully with the message Enabled FIPS mode:
In addition, there will be no shared object dependencies on libssl or libcrypto:
On Mac OS X, otool is the ldd equivalent:
Downloads[edit]
fipsld++.tar.gz - The modified fipsld++ to create stand alone EXEs.
Dev C 2b 2b Mac Os X Download Windows 10
Introduction
The NVIDIA® Jetson Nano™ 2GB Developer Kit is ideal for hands-on projects. Learning by doing is key for anyone new to AI and robotics, and with this developer kit you’ll see your work perceiving and interacting with the world around you in real-time.
This Getting Started Guide will have you set up quickly and ready to start building practical AI applications, cool AI robots, and more.
- microSD card slot for main storage
- 40-pin expansion header
- Micro-USB port for Device Mode
- Gigabit Ethernet port
- USB 2.0 ports (x2)
- USB 3.0 port (x1)
- HDMI output port
- USB-C for 5V power input
- MIPI CSI-2 camera connector
Included in the Box
Your Jetson Nano 2GB Developer Kit includes:
- NVIDIA Jetson module and reference carrier board
- Quick Start / Support Guide
- 802.11ac wireless adapter and extension cable
The wireless networking adapter isn’t initially available in all regions, but will be added as it becomes available. Jetson Nano 2GB Developer Kit Part Numbers:
- 945-13541-0000-000 includes adapter and cable
- 945-13541-0001-000 does not include adapter and cable
Items not Included
You’ll also need:
- microSD Card (UHS-1 32 GB minimum)
- 64 GB or more recommended
- High endurance card recommended
- USB keyboard and mouse
- HDMI display
- USB-C power supply (5V⎓3A)
Initially, a computer with Internet connection and the ability to flash your microSD card is also required.
Additional Notes
microSD Card
The developer kit uses a microSD card as boot device and for main storage. It’s important to have a card that’s fast and large enough for your projects; the minimum requirement is a 32GB UHS-1 card.
Many projects with Jetson Nano 2GB Developer Kit will utilize swap space on the microSD Card due to only 2GB physical memory. For this reason we recommend 64GB or larger microSD cards. High endurance microSD cards are also recommended.
USB-C Power Supply
The Jetson Nano 2GB Developer Kit can be powered with common USB-C power supplies, but it does not support the USB-C Power Delivery protocol. This means commonly available USB-C power supplies can be used, but they will all fall back to delivering 5V⎓3A because no power negotiation takes place.
You’ll need to power the developer kit with a good quality power supply (and cable) that can deliver 5V⎓3A at the developer kit’s USB-C port. The stated power output capability of a USB power supply can be seen on its label, but not every power supply promising “5V⎓3A” will actually do this.
See our Supported Components List for power supplies that NVIDIA has validated for use with the developer kit.
Network Connectivity
You can connect your developer kit to the Internet using:
- Gigabit Ethernet port
- Wireless networking adapter
The developer kit includes an 802.11ac networking adapter (where available). Other networking adapters validated for use with the developer kit can be found in the Supported Components List. Other adapters not validated by NVIDIA may work if they support Linux and the driver is correctly installed by the user.
If your developer kit includes a wireless networking USB adapter, please use it with the included extension cable and connect it to the USB 3.0 port for best networking performance.
Write Image to the microSD Card
To prepare your microSD card, you’ll need a computer with Internet connection and the ability to read and write SD cards, either via a built-in SD card slot or adapter.
- Download the Jetson Nano 2GB Developer Kit SD Card Image and note where it was saved on the computer.
- Write the image to your microSD card by following the instructions below according to the type of computer you are using: Windows, macOS, or Linux.
Instructions for ChromeOS
Instructions for Windows
Format your microSD card using SD Memory Card Formatter from the SD Association.
- Download, install, and launch SD Memory Card Formatter for Windows.
- Select card drive
- Select “Quick format”
- Leave “Volume label” blank
- Click “Format” to start formatting, and “Yes” on the warning dialog
Use Etcher to write the Jetson Nano Developer Kit SD Card Image to your microSD card
- Download, install, and launch Etcher.
- Click “Select image” and choose the zipped image file downloaded earlier.
- Insert your microSD card if not already inserted.
Click Cancel (per this explanation) if Windows prompts you with a dialog like this: - Click “Select drive” and choose the correct device.
- Click “Flash!” It will take Etcher about 10 minutes to write and validate the image if your microSD card is connected via USB3.
- After Etcher finishes, Windows may let you know it doesn’t know how to read the SD Card. Just click Cancel and remove the microSD card.
After your microSD card is ready, proceed to set up your developer kit.
Instructions for MacOS
You can either write the SD card image using a graphical program like Etcher, or via command line.
Etcher Instructions
- Do not insert your microSD card yet.
- Download, install, and launch Etcher.
- Click “Select image” and choose the zipped image file downloaded earlier.
- Insert your microSD card. Click Ignore if your Mac shows this window:
- If you have no other external drives attached, Etcher will automatically select the microSD card as target device. Otherwise, click “Select drive” and choose the correct device.
- Click “Flash!” Your Mac may prompt for your username and password before it allows Etcher to proceed It will take Etcher about 10 minutes to write and validate the image if your microSD card is connected via USB3.
- After Etcher finishes, your Mac may let you know it doesn’t know how to read the SD Card. Just click Eject and remove the microSD card.
Command Line Instructions
- Do not insert your microSD card yet. Waiting will help you discover correct disk device name in steps below.
- Open the Terminal app:
- Use this command to list any external disk devices already attached to your Mac:
diskutil list external | fgrep '/dev/disk'
For example, if you already have a USB drive attached to your Mac, the result will look similar to this: - Insert your microSD card. Click Ignore if your Mac shows this window:
- Use the same command as before to list external disk devices. The newly listed disk device is the microSD card (/dev/disk2 in this example):
- Use this command to remove any existing partitions from the microSD card, ensuring MacOS will let you write to it. BE VERY CAREFUL to specify the correct disk device.
sudo diskutil partitionDisk /dev/disk<n> 1 GPT 'Free Space' '%noformat%' 100%
For example: - Use this command to write the zipped SD card image to the microSD card. Note the use of /dev/rdisk instead of /dev/disk:
/usr/bin/unzip -p ~/Downloads/jetson_nano_devkit_sd_card.zip | sudo /bin/dd of=/dev/rdisk<n> bs=1m
For example: - There will be no indication of progress (unless you signal with CTRL-t). When the dd command finishes, your Mac will let you know it cannot read the microSD card. Just click Eject:
After your microSD card is ready, proceed to set up your developer kit.
Check
You can either write the SD card image using a graphical program like Etcher, or via command line.
Etcher Instructions
- Download, install, and launch Etcher.
- Click “Select image” and choose the zipped image file downloaded earlier.
- Insert your microSD card. If you have no other external drives attached, Etcher will automatically select the microSD card as target device. Otherwise, click “Change” and choose the correct device.
- Click “Flash!” Your OS may prompt for your username and password before it allows Etcher to proceed. It will take Etcher 10-15 minutes to write and validate the image if your microSD card is connected via USB3.
- After Etcher finishes, eject the SD Card using Files application:
- Physically remove microSD card from the computer.
Command Line Instructions
- Open the Terminal application by pressing Ctrl + Alt + t.
- Insert your microSD card, then use a command like this to show which disk device was assigned to it:
In this example, we can see the 16GB microSD card was assigned /dev/sda: - Use this command to write the zipped SD card image to the microSD card:For example: When the dd command finishes, eject the disk device from the command line:
/usr/bin/unzip -p ~/Downloads/jetson_nano_devkit_sd_card.zip | sudo /bin/dd of=/dev/sd<x> bs=1M status=progress
sudo eject /dev/sd<x>
- Physically remove microSD card from the computer.
After your microSD card is ready, proceed to Setup your developer kit.
After your microSD card is ready, proceed to set up your developer kit.
Setup and First Boot
There are two ways to interact with the developer kit: 1) with display, keyboard and mouse attached, or 2) in “headless mode” via connection from another computer.
You can conduct the initial setup either way.
Initial setup with display attached | Initial setup in headless mode | |
---|---|---|
Monitor, keyboard and mouse | Required | Not required |
Extra computer | Not required | Required |
Power options | Either Micro-USB or DC power supply can be used | DC power supply is needed |
Initial Setup with Display Attached
- Insert the microSD card (with system image already written to it) into the slot on the underside of the Jetson Nano module.
- Set the developer kit on a non-conductive surface.Operating the developer kit on a conductive surface will short the pins at the bottom of it, damaging the board
- Power on your computer display and connect it.
- Connect your USB keyboard and mouse using the USB 2.0 ports.
- Connect your USB-C power supply (5V⎓3A). The developer kit will power on and boot automatically.
First Boot
A green LED next to the Micro-USB connector will light as soon as the developer kit powers on. When you boot the first time, the developer kit will take you through some initial setup, including:
- Review and accept NVIDIA Jetson software EULA
- Select system language, keyboard layout, and time zone
- Create username, password, and computer name
- Optionally configure wireless networking
- Select APP partition size. It is recommended to use the max size suggested
- Create a swap file. It is recommended to create a swap file
After Logging In
You will see this screen. Congratulations!
Note: Jetson Nano 2GB Developer Kit uses the memory-efficient LXDE desktop environment with Openbox window manager. Check out some basic Openbox info and tips if you are more accustomed to other Linux desktops (or are new to Linux entirely).
Initial Setup in Headless Mode
To complete setup when no display is attached to the developer kit, you’ll need to connect the developer kit to another computer and then communicate with it via a terminal application (e.g., PuTTY) to handle the USB serial communication on that other computer.
Setup Steps
- Insert the microSD card (with system image already written to it) into the slot on the underside of the Jetson Nano module.
- Set the developer kit on a non-conductive surface.Operating the developer kit on a conductive surface will short the pins at the bottom of it, damaging the board
- Connect your other computer to the developer kit’s Micro-USB port.
- Connect your USB-C power supply (5V⎓3A). The developer kit will power on automatically.
- Connect your other computer to the developer kit’s Micro-USB port.
- Allow 1 minute for the developer kit to boot.
Instructions for ChromeOS
Instructions for Windows
Locate the correct COM port
Assuming you have already connected your Windows PC to the developer kit’s Micro-USB port, right click the Windows Start icon and select “Device Manager.”
Open the “Ports (COM & LPT)” to find the COM port number for “USB Serial Device” (in this case “COM 16”)
Double click each USB Serial Device entry so you can check its properties. Go to the “Details” tab, and select “Hardware Ids”. If you see VID 0955 and PID 7020, that USB Serial Device for your Jetson developer kit. Note the COM port name (COM16 in this example) for later use.
Open the COM port on PuTTY
PuTTY is one of the most widely used terminal applications for accessing serial consoles. You can use other terminal applications, but if you don’t have any on your Windows PC, you can download PuTTY from here.
Open the PuTTY application. When “Session” is selected in the left “Category” pane, input the COM port name for “Serial line” and “115200” for “Speed”.
Click “Open” to connect to the console.
Instructions for macOS
Locate the tty device
Before connecting to your Jetson developer kit for initial setup, check to see what Serial devices are already shown on your macOS computer.
Connect your macOS computer to the developer kit’s Micro-USB port and run the same command to find what’s newly added.
The new serial device is for your Jetson developer kit.
Screen command
Screen is already installed by default as part of macOS.
Use the device name discovered previously as a command line option for the `screen` command.
Terminate screen
To terminate your screen session, press C-a + k (Ctrl + a, then k), then press y on confirmation.
Check
Locate the tty device
Dev C 2b 2b Mac Os X Downloads
Before connecting to your Jetson developer kit for initial setup, check to see what Serial devices are already shown on your Linux computer.
Connect your Linux computer to the developer kit’s Micro-USB port and run the same command to find what’s newly added.
The new serial device is for your Jetson developer kit.
Screen command
Install the Screen program on your Linux computer if it is now already available. For example, use this command to install Screen if you are running Ubuntu.
Use the device name discovered previously as a command line option for the `screen` command.
Terminate screen
To terminate your screen session, press C-a + k (Ctrl + a, then k), then press y on confirmation.
Once connected to the developer kit, hit SPACE if the initial setup screen does not appear automatically.
First Boot
When you boot the first time, the developer kit will take you through some initial setup, including:
- Review and accept NVIDIA Jetson software EULA
- Select system language, keyboard layout, and time zone
- Create username, password, and computer name
- Optionally configure wireless networking
- Select APP partition size. It is recommended to use the max size suggested
- Create a swap file. It is recommended to create a swap file
After Logging In
You will see a standard Linux command line prompt in your serial terminal application. Congratulations!
Next Steps
Find Your Way Around
Congratulations on setting up your Jetson Nano 2GB Developer Kit!
The following guides will help you to learn more about the developer kit and setting up your ideal developer environment:
Dev C 2b 2b Mac Os X Download Mac
- Jetson 2GB Developer Kit User Guide
This page has more details on all the inputs and outputs of the developer kit and how to use them. - Your First Jetson Container
Learn what containers are, and how to download and use them on your developer kit. - Setting Up VNC
Headless mode doesn’t have to mean command line only. Learn how to interact with your developer kit’s Linux desktop from another computer. - Connecting Bluetooth Audio
- Your First Jetson Container
- NVIDIA AI tutorials and courses
- Hello AI World
The classic way to start exploring AI - JetBot
Hands-on, open-source AI robot platform - Jetson AI Fundamentals Course
Get started learning about AI with this practical course
- Hello AI World
- Get inspired with the latest Jetson community projects
Try these great projects to start: - Ask and answer questions on the Jetson Nano Forum
- Jetson Wiki
- Don’t miss the Jetson Zoo with instructions for installing various open source add-on packages and frameworks for Machine Learning, Computer Vision, Robotics, and more.