Sprinkle the eggplant slices liberally with salt and place in a colander. Place a heavy plate over the slices and let drain for 1 hour. After 1 hour, rinse the eggplant quickly in water. Dry on paper towels, pressing down to extract juices.
While the eggplant is draining: In a saucepan, melt 2 tablespoons of the butter. Add the onion and cook over moderately low heat until soft. Add the garlic for the last minute of cooking. Add the tomatoes and simmer very gently, partially covered, for 1 hour, stirring occasionally. Add the basil and simmer for another 10 minutes. Add pepper to taste.
Preheat oven to 375 degrees.
In a large skillet, heat 5 tablespoons of olive oil over moderately high heat and in it sauté the eggplant slices in batches, until they are brown on both sides. You will have to add more oil between batches. When they are done, remove the slices with a slotted spatula to drain on paper towels.
Slice half the mozzarella as thin as possible. Set aside. Cut the rest of the mozzarella into small cubes and add to the penne.
In a kettle, bring 5 quarts water to a boil, add 1 tbsp of salt and the vegetable oil. Add the penne pasta, stir, and cook until not quite al dente, a bit on the chewy side (about 8 to 10 minutes for boxed pasta). Drain thoroughly and transfer to a large bowl. Toss the pasta with the tomato sauce, salami, and 3/4 cup of the Parmesan.
Oil a rectangular enamel or porcelain baking dish, 14 x 9 x 2 inches. Scatter the bread crumbs over the bottom. Layer the eggplant, overlapping the slices, in the bottom. Chop the remaining eggplant and add it to the penne. Lay the slices of mozzarella over the layer of eggplant. Spoon the penne mixture over the mozzarella. Sprinkle the remaining 1/2 cup Parmesan over the penne and dot with the remaining 2 tablespoons of butter.
Cover the baking dish with foil and bake for 20 minutes. Remove the foil and bake for another 20 minutes, or until the top is lightly browned.